C++面向对象程序设计实验五报告代码
更新时间:2023-11-12 05:07:01 阅读量: 教育文库 文档下载
面向对象/C++程序设计实验报告
时间:第 十三 周星期 六 18:00—19:30
实验名称: 实验五 虚函数
院系:电子工程与自动化学院 座号: 成绩:
姓名: 学号: 指导老师:
课号:
一、实验目的
虚函数是重载的另外一种形式,它是一种动态的重载方式,提供了一种更为灵活的多 态性机制,它在运行时才决定如何动作。
6
对于基类和派生类中的函数重载,通过指针引起的普通成员函数调用,仅仅与指针的
类型有关,而与此刻正指向什么对象无关(如:指向基类对象的指针,当其指向派生类对象 时,只能利用它来直接访问派生类中从基类继承来的成员,不能直接访问公有派生类中自己 特定的成员)。在这种情况下,必须采用显示的方式调用派生类中的函数成员。 要实现使用对象指针时,能使指针指向不同对象时能执行不同的操作的功能,就需要 定义虚函数来实现。
虚函数是引入了派生类概念之后,用来表现基类和派生类的成员函数的关系的函数。
虚函数定义在基类中进行,在基类中需要定义为虚函数的成员函数前加关键字virtual,从 而提供了一个接口界面,在基类中的某个成员被声明为虚函数后,此虚函数就可在一个或多 个派生类中被重新定义。在重新定义时,其函数原型、包括返回类型、函数名、参数个数及 参数类型的顺序,都必须与基类中的原型完全一致。
二、实验内容
使用Visual C++ 6.0 建立一个类A,A 中定义一个虚函数,然后派生出两个类B 和C。
三、实验要求
1、分别以public 和private 的方式派生出两个类B、C;
2、在基类A 中添加一个虚函数和一个非虚函数,分别在派生类中对该虚函数进行重载; 函数和非虚函数实现的功能要求由参加实验的同学自己决定;
3、设计主程序,要求其能够分别用一般对象和指针对象实现各类中虚函数的调用和非虚 函数的对应调用;
4、对运行的结果进行分析并做出注释,对不能运行的代码注释并做出相应的原因分析。
四、思考题
1)考虑虚函数在什么情况下调用不具有虚函数的特点?
2)纯虚函数跟虚函数相比,有什么区别?有纯虚函数的类跟有虚函数的类相比,又
有什么区别? 1、程序代码:
#include
cout<<\ 基类A虚函数functionA1被访问.\}
void funtionA2() {
cout<<\ 基类A非虚函数functionA2被访问.\ } };
class B:public A { public: virtual void funtionA1() { cout<<\ 派生类B虚函数functionA1被访问.\ } void funtionB2() { cout<<\ 派生类B非虚函数functionB2被访问.\ } };
class C:private A { public: virtual void funtionA1() { cout<<\ 派生类C虚函数functionA1被访问.\ } void funtionC2() { A *pA; C c; pA=&c; pA->funtionA1(); pA->funtionA2(); cout<<\ 派生类C非虚函数functionC2被访问.\
} };
int main() { A a,*pA; B b; C c;
pA=&a;//基类A的指针pA当前指向基类对象a cout<<\基类A的指针pA当前指向基类对象a:\ pA->funtionA1();//访问基类的虚函数funtionA1() pA->funtionA2();//访问基类的非虚函数funtionA2() cout<
2、运行结果:
正在阅读:
C++面向对象程序设计实验五报告代码11-12
2018-2024年中国公务机制造行业市场运营态势研究报告(目录) -05-19
仿写珍珠鸟写小狗作文06-18
2012年无机化学12-04
高考英语作文范文100篇04-06
2013-2014-2宏微观经济学期终复习知识要点05-26
五 有趣的数理推理06-19
高中历史必修课第五分册备课笔记第19课 民国初年的社会与政局11-28
审计学期末复习题10-04
高中语文谈中国诗教案1新人教版01-13
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- C++
- 程序设计
- 面向
- 对象
- 实验
- 代码
- 报告
- C语言练习题真答案(汇总版)
- 论儒家的道德伦理观
- 当前农村征地拆迁过程中存在的问题以及对策
- 大体积混凝土专项施工方案
- 2010 巢湖市教师资格认定教育教学能力测试人员名单 - 图文
- 废弃物资源化处理成套设备项目IPO上市咨询(2013年最新细分市场+募投可研+招股书底稿)综合解决方案
- 压敏胶及压敏胶制品的研究现状
- 谈客九大步骤(房地产营销)
- 高三英语总复习2 写作 阅读 完型 七选五
- 郑大远程教育2018年马克思主义第三章测试题
- 开场后讲诉台词
- 110国道改扩建施工图说明(1)
- 计算机组成原理(肖铁军2010版)课后答案(完整版)
- 强化“四种意识”做好“四篇文章”
- 知识产权保护与管理实务试题与答案
- 美国文学 复习资料
- 微机实验指导书新版16
- 带孩子去北京旅游的注意事项
- 马原习题第三章
- 攻击与释放触发解析-关于正确入手称号的明智选择