第13周阅读程序(3)
来源:互联网 发布:知与行杂志官网 编辑:程序博客网 时间:2024/06/06 03:22
问题及代码:
/**copyright (t) 2016,烟台大学计算机学院*All rights reserved.*文件名称:test.cpp*作者:张晴晴*完成日期:2016年6月2日*版本号:v1.0*问题描述:阅读程序--纯虚函数*输入描述:*程序输出:*/#include <iostream>using namespace std;class Base{public: virtual void Who() =0;//纯虚函数的声明,}; class FirstDerived:public Base{public: void Who() { cout<<"F"; }};class SecondDerived:public Base{public: void Who() { cout<<"S"; }};int main(){ FirstDerived first_obj; SecondDerived second_obj; Base &bref=first_obj;//类名后加上&的意思是引用 bref.Who();//输出的是他引用的别人家的函数,所以输出F; bref=second_obj;//注意:派生类对象可以对基类对象赋值,所谓的赋值只是对数据成员赋值, //对成员函数不存在赋值问题,赋值后不能企图通过基类的对象去访问派生类对象的成员, //因为基类对象的成员和派生类对象的成员是不同的。 //所以这里的bref还是上面引用first_obj的内存,没有分配新的内存 bref.Who();//还是输出F Base *bp; bp=&first_obj;//基类型的指针指向的是派生类的对象 bp->Who();//输出的是他引用的别人家的函数,所以输出F; bp=&second_obj; bp->Who();//输出的是他引用的别人家的函数,所以输出S; return 0;}//纯虚函数是在基类中声明的虚函数,//在基类中没有定义具体的操作内容,要求各派生类根据实际需要给出各自的定义。//纯虚函数与一般的虚函数不同就是在后面加了"=0"。
运行结果:
学习心得:
解析写在上面的代码中。
注意这个程序中有基类对象的引用,还有几类对象的指针的用法,还有基类对象对派生类对象赋值的问题,
要注意引用是不重新分配内存的,而定义一个指针的时候,指针可以重新分配内存。
0 0
- 第13周-程序阅读(3)
- 第13周-阅读程序(3)
- 第13周阅读程序(3)
- 第13周项目 程序阅读(3)
- 第13周程序阅读(1)
- 第13周程序阅读(2)
- 第13周-程序阅读(1)
- 第13周-程序阅读(2)
- 第13周-程序阅读(4)
- 第13周-阅读程序(1)
- 第13周-阅读程序(2)
- 第13周阅读程序(1)
- 第13周阅读程序(2)
- 第11周阅读程序(3)
- 第12周-阅读程序(3)
- 第12周阅读程序(3)
- 第14周阅读程序(3)
- 第14周-阅读程序(3)
- 怎么把一个事情描述清楚
- Datagrid动态设置列标题的的扩展方法
- JavaScript学习--Item25 创建对象(类)的8种方法总结
- CALayer
- 第十二周上机时间项目——项目1—实现复数类中的运算符重载
- 第13周阅读程序(3)
- ajax、Spring提交表格的时候出现中文乱码
- Java中的反射机制
- 深入理解计算机系统 4
- 第十二周上机实践项目 项目1-实现复数类中的运算符重载 (2)
- 反转整数
- Yii2杂记
- 数组指针和指针数组的区别
- JavaScript学习--Item35 事件流与事件处理