第十三周实践项目-阅读下面的程序,并写出运行结果(3)
2016-05-26 09:21
253 查看
问题及代码:
程序分析:
1、纯虚函数功能的实现,只能在派生类中。(有纯虚函数的类,是专门用来当基类的。)
2、基类对象引用派生类对象first_obj;则在执行bref.Who()的时候会输出F。
3、即使bref=second_obj执行bref.Who()时也会输出F。但如果基类中的成员函数不是纯虚函数或者虚函数,对应的结果都将是基类成员函数中对应的输出结果。
例如:void Who(){cout<<"A";}则输出结果将为AAAA。
4、因为基类中成员函数为纯虚函数,则当指向基类的指针指向派生类对象时,会输出各自的结果。
综上所述:输出结果为FFFS。
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作 者:董凯琦 *完成日期:2016年5月26日 *版 本 号: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(); bref=second_obj; bref.Who(); Base *bp; bp=&first_obj; bp->Who(); bp=&second_obj; bp->Who(); return 0; }
程序分析:
1、纯虚函数功能的实现,只能在派生类中。(有纯虚函数的类,是专门用来当基类的。)
2、基类对象引用派生类对象first_obj;则在执行bref.Who()的时候会输出F。
3、即使bref=second_obj执行bref.Who()时也会输出F。但如果基类中的成员函数不是纯虚函数或者虚函数,对应的结果都将是基类成员函数中对应的输出结果。
例如:void Who(){cout<<"A";}则输出结果将为AAAA。
4、因为基类中成员函数为纯虚函数,则当指向基类的指针指向派生类对象时,会输出各自的结果。
综上所述:输出结果为FFFS。
相关文章推荐
- 第十二周【项目2-Time类中的运算符重载】
- 浅谈如何使用代码为MP3文件写入ID3Tags
- C语言课设销售管理系统设计
- 这些词真的不该出现在简历上!
- Java读取Properties文件中在配置
- xcode git pod找不到头文件
- 欢迎使用CSDN-markdown编辑器
- 《上古天真论》第十三讲文字版
- 【Halcon】Halcon颜色识别之classify_fuses_gmm_based_lut.hdev
- Android异步任务AsyncTask
- linux删除过期文件
- 移动APP测试の学习(1)
- 在VisualStudio 2013下使用VS2012的插件
- java学习笔记继承和多态5.24
- Linux 技巧:重定向 stderr 和 stdout 输出到 gdb 窗口
- MYSQL----myownstars(102)
- 教务管理系统类图及数据库E/R图
- 《上古天真论》第十二讲文字版
- 前后台使用不同二级域名的Ueditor设置
- Linux 的僵尸(zombie)进程