第十二周项目1-1-长颈鹿类对动物类的继承(public继承)
2014-05-12 16:31
176 查看
/* *程序的版权和版本声明部分: *Copyright(c)2014,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:田成琳 *完成日期:2014 年 5 月 12 日 *版本号:v1.0 *对任务及求解方法的描述部分: *输入描述:无 *问题描述:在下面的程序中要求的位置写下注释,声明相应的语句在语法上是否正确,为什么。 在第一个程序中给出了示例,其他位置请仿照完成。 在上机时,可以编译程序加以验证,阅读错误给出的英文提示,并加以理解。 *程序输出:- *问题分析: *算法设计: */ #include <iostream> using namespace std; class Animal //动物类 { public: Animal() {} void eat() { cout << "eat\n"; } protected: void play() { cout << "play\n"; } private: void drink() { cout << "drink\n"; } }; class Giraffe: public Animal //长颈鹿类 { public: Giraffe() {} void StrechNeck() { cout << "Strech neck \n"; } private: void take() { eat(); // 正确,公有继承下,基类的公有成员对派生类可见 //drink(); // 错误,drink()在Animal类中为私有函数 play(); // 正确,公有继承下,基类的受保护成员对派生类可见 } }; int main() { Giraffe gir; //定义派生类的对象 gir.eat(); // 正确,公有继承下,基类的公有成员对派生类对象可见 //gir.play(); // 错误,Giraffe中的对象类外不能访问Animal类中的受保护成员 //gir.drink(); // 错误,Giraffe中的对象不能访问Animal类中的私有成员 //gir.take(); // 错误,Giraffe中的对象不能访问本类中的私有成员 gir.StrechNeck(); // _______________ Animal ani; ani.eat(); // _______________ //ani.play(); //错误,Animal中的对象类外不能访问本类中的受保护成员 //ani.drink(); // 错误,Animal中的对象不能访问本类中的私有成员 //ani.take(); //错误,派生类的成员对基类对象(不论访问属性)不可见 //ani.StrechNeck(); // 错误,派生类的成员对基类对象(不论访问属性)不可见 return 0; }
心得体会: 1.基类对象永远不能访问派生类的成员。
2.private和protected的成员在类外无法由对象访问。
3.protected成员在类内可被访问。
4.基类的protected成员在派生类中只能在类内访问。
相关文章推荐
- 第十二周项目1.1长颈鹿类对动物类的继承。。public继承方式
- 第十二周 项目1--长颈鹿类对动物类的继承(public)
- 第十二周项目1.1长颈鹿类对动物类的继承(public继承方式下)
- 第十二周 项目1 - 长颈鹿类对动物类的继承(public继承方式)
- 第十二周项目1.2长颈鹿类对动物类的继承(private继承方式下)
- 第十二周项目1-2-长颈鹿类对动物类的继承(private继承)
- 第十二周项目1.2长颈鹿类对动物类的继承。。private继承方式下
- 第十二周上机实践项目——长颈鹿类对动物类的继承(protected继承方式下)
- 第十二周(项目一)——长颈鹿类对动物类的继承 。
- 第十二周项目1-3-长颈鹿类对动物类的继承(保护继承)
- 第十二周上机实践项目——长颈鹿类对动物类的继承
- 第十二周 项目1--长颈鹿类对动物类的继承(private)
- 第十二周 项目1-长颈鹿类对动物类的继承
- 第十二周 项目1 项目1 - 长颈鹿类对动物类的继承
- 第二学期第十二周项目1--长颈鹿类对动物类的继承
- 第12周 项目一 1.1长颈鹿类对动物类的public继承
- 第十二周上机实践项目——长颈鹿类对动物类的继承(private继承方式下)
- 12周【项目1 - 长颈鹿类对动物类的继承】
- 【项目1 - 长颈鹿类对动物类的继承】理解基类中成员的访问限定符和派生类的继承方式
- 第十二周 项目一 长颈鹿对动物类的继承(2)