- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实验七虚函数及应用
一、实验目的
1.理解虚函数与运行时(动态)多态性之间的关系,掌握虚函数的定义及应用;
2.理解纯虚函数与抽象类的概念,掌握抽象类的定义及应用;
3.理解虚析构函数的概念及作用。
二、实验学时
课内实验:2课时课外练习:2课时
三本实验涉及的新知识
㈠虚函数与动态多态性
在C++中,如果将基类与派生类的同名成员函数定义为虚函数,就可以定义一个基类指
针,当基类指针指向基类对象时访问基类的成员函数,当基类指针指向派生类对象时访问派
生类的成员函数,实现在运行时根据基类指针所指向的对象动态调用成员函数,实现动态多
态性。换句话说,虚函数与派生类相结合,使C++能支持运行时(动态)多态性,实现在基
类中定义派生类所拥有的通用“接口”,而在派生类中定义具体的实现方法,即“一个接口,
多种方法”。
㈡虚函数的定义
1.在基类中定义
在定义函数的前面加上“virtual”。即:
virtual返回类型函数名(参数表)
{……}
2.在派生类中定义
函数的返回类型、函数名、参数的个数、参数类型及顺序必须与基类中的原型完全相同。
3.说明:
⑴在派生类中定义虚函数时,可用“virtual”也可不用“virtual”(最好都使用)。
⑵虚函数在派生类中重新定义时,其原型必须与基类中相同。
⑶必须用基类指针访问虚函数才能实现运行时(动态)多态性;当用普通成员函数的
调用方法(即用圆点运算符)调用虚函数时,为静态调用;
⑷虚函数在自身类中必须声明为成员函数(不能为友元函数或静态成员函数),但在另
一个类中可以声明为友元函数。
⑸虚函数可以公有继承多次,其虚函数的特性不变。
⑹构造函数不能定义为虚函数,但析构函数可以定义为虚函数。
⑺虚函数与重载函数的关系
①普通函数重载是通过参数类型或参数的个数不同实现的;重载一个虚函数时,其函
数原型(返回类型、参数个数、类型及顺序)完全相同。
②当重载的虚函数只有返回类型不同时,系统将给出错误信息;如果定义的虚函数只
有函数名相同,而参数个数或类型不同时,则为普通函数重载。
㈢纯虚函数与抽象类
1.纯虚函数定义
格式:
1
virtual返回类型func_name(参数表)=0;
[{……}]
2.抽象类
⑴抽象类的概念
当一个类中定义了一个或多个纯虚函数,则该类称为抽象类。
⑵说明:
①抽象类中包含没有功能的纯虚函数,用来提供派生类的公共接口函数。因此,抽象
类只能作为其它类的基类,不能定义其对象。
②可以定义抽象类的指针或引用,用于指向派生类而实现多态性。
③如果在派生类中未重新定义纯虚函数,则派生类只是继承了基类的纯虚函数,这时,
派生类仍是抽象类。
㈣虚析构函数
1.虚析构函数的定义
在析构函数名前加上“virtual”。即:
virtual~类名(void)
{……}
2.说明
当类中需要显式定义析构函数,而在基类中定义了虚函数时,应将析构函数定义为虚析
构函数,以实现动态调用析构函数。
四、实验内容
㈠验证及认知实验
按要求调试下列程序,并回答相关问题。
程序1(exp_801.cpp)
#includeiostream.h
classBase
{inta,b;
public:
Base(intx,inty)
{a=x;b=y;}
voidshow()
}
};
classDerived:publicBase
{intc;
public:
Derived(intx,inty,intz):Base(x,y)
{c=z;}
voidsh
您可能关注的文档
- 《集成电路先进制造工艺工程师》高级培训课程试题.pdf
- 危险化学品安全管理制度(四篇).pdf
- 学宪法讲宪法初中生作文.pdf
- 仓储管理员试题库+答案.pdf
- 光学和光谱分析的原理和方法.pdf
- 生物技术专业建设工作总结报告.pdf
- 2022年云智慧职教财务大数据基础答案.pdf
- 工程项目效能监察实施方案(四篇).pdf
- 培训中心学员考核制度范文(二篇).pdf
- 办公室秘书职责模版(三篇).pdf
- 第三单元解决问题的策略 三年级下册数学高频考点重难点讲义(苏教版)(1).docx
- 4.4 解比例 数学六年级下册同步培优讲义(苏教版).docx
- 第四单元《根据方向与距离确定物体位置》(教案)五年级下册数学青岛版.docx
- (奥数典型题)第三讲 分解质因数 五年级下册数学思维拓展提升讲义(人教版).docx
- 2.2:2、5、3的倍数-人教版五年级数学下册第二单元:因数和倍数.docx
- 第六单元正比例和反比例 六年级下册数学高频考点重难点讲义(苏教版).docx
- 第二单元除数是一位数的除法 三年级下册数学高频考点重难点讲义(人教版).docx
- 第二单元-认识三角形和四边形 四年级数学下册提升(北师大版).docx
- 第一单元观察物体(三)五年级下册数学高频考点重难点讲义(人教版).docx
- 第九单元 数学广角—推理 二年级数学下册重难点知识点(人教版).docx
文档评论(0)