- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象技术课程论文C中虚函数实现机制的探讨
《面向对象技术》课程论文
C++中虚函数实现机制的探讨
学科专业:计算机应用技术
年 级:2012级硕士
姓 名:XXX
学 号:201200000000
C++中虚函数实现机制的探讨
摘要:多态性是面向对象程序设计的重要特性之一。虚函数是C++中用于实现多态的机制,是C++中常用的一个重要内容。正确、灵活的使用虚函数,可以使程序简洁、高效。本文对C++中虚函数的实现机制进行了探讨,并通过程序举例来分析,力求更好的理解和使用虚函数。
关键字:虚函数 多态性 晚期绑定
1 引言
C++是一种面向对象的程序设计语言,具有封装性、继承性和多态性3大特征。多态性允许派生类对象在通过父类指针或引用调用成员函数时,准确地调用目标成员函数。多态被认为是C++等面向对象程序设计语言的精华部分,一个不懂多态的C++程序员顶多算是入门级的,没有掌握C++语言的精髓所在。在C++中,实现多态的一种重要途径是动态绑定,或称为晚期绑定,而虚函数是实现动态绑定的关键。虚函数增强了类型的概念,而不是只在结构内部隐藏的封装代码,所以毫无疑问,对于C++程序员来讲,这些使用方法是比较难以理解和掌握的。深入地探讨虚函数的实现机制,对于理解C++语言的多态性,运用虚函数编写高效爱的程序代码,无疑是有帮助的。
2 程序设计的多态性
多态性是面向对象程序设计的重要特征之一,它和封装性、继承性构成了面向对象程序设计的三大特征,多态性必须存在于集成的环境之中。多态是指不同的对象接受到相同的消息时产生不同的响应动作,即对相同的函数名执行不同的函数体。在面向对象程序设计语言中,多态性有两种基本形式:编译时多态性和运行时多态性。函数的重载实际上就是编译时多态,调用函数时可以通过使用不同的参数个数或者不同的参数类型,实现在不同情况下对不同函数体的调用,从而达到多态的目的。
例1 有如下程序:
#include iostream
using namespace std;
class Base
{
public:
void who(){coutThis is the base class!endl;}// ①
};
class Derive1 : public Base
{
public:
void who(){coutThis is the derive1 class!endl;}
};
class Derive2 : public Base
{
public:
void who(){coutThis is the derive2 class!endl;}
};
int main()
{
Base obj, *p;
Derive1 obj1;
Derive2 obj2;
p = obj;
p-who();
p = obj1;
p-who();
p = obj2;
p-who();
obj1.who();
obj2.who();
return 1;
}
程序的运行结果为:
This is the base class!
This is the base class!
This is the base class!
This is the derie1 class!
This is the derive2 class!
从上述程序的运行结果可以看出,通过对象指针进行的普通成员函数调用,仅仅与指针的类型有关,而与此指针指向什么对象无关。要想实现当指针指向不同对象时执行不同的操作,就必须将类中相应的成员函数定义为虚函数。
2 虚函数
2.1 虚函数的定义
说明虚函数的一般格式如下:
virtual 函数返回类型说明符 函数名(参数表)
虚函数用来表现基类和派生类的成员函数之间的一种关系,虚函数的定义是在基类中进行的,在需要定义为虚函数的成员函数的声明前冠以关键字virtual。
定义虚函数时要注意以下几点:
(1)虚函数是非静态的、非内联的成员函数,且不能是友元函数,但虚函数可以在另一个类中被声明为友元函数。
(2)虚函数的声明只能出现在定义的函数原型声明中,而不能在成员函数的函数体实现的时候声明。
(3)一个虚函数无论被公有继承多少次,它仍然保持其虚拟性。在派生类中重新定义虚函数时,关键字virtual可以写,也可以不写,但在容易引起混乱时,应写上该关键字。
(4)若类中一个成员函数被说明为虚函数,则该成员函数在派生类中可能有不同的实现。当使用该成员函数操作指针或引用所标识的对象时,对该成员函数调用可采用动态联遍,即一直到程序运行时才能确定调用哪个函数。虚函数是实现多态的基础,是实现动态联编的必要条件之一。没有虚函数
您可能关注的文档
- 邮票去污的基本方法.doc
- 邮票的采集和鉴别.doc
- 郑州代理记账公司会计人员你不得不知道的外汇小常识.docx
- 郑州代理记账公司浅谈企业现金流量管理与风险防范.docx
- 郑州做网站优化需要知道的关键要素.doc
- 郑州代理记账公司资本公积的形成与变动处理.docx
- 郑州慢性咽炎的病因.doc
- 郭军构建合理的金融消费者权益保护机制.doc
- 郭靖与杨康的对比体会.doc
- 酒店管理分析模式酒店管理模式的发展与演进2015(叶予舜).docx
- 浙江省宁波市鄞州区董玉娣中学2025届化学九上期末调研模拟试题含解析.doc
- 红河学院《语言学导论》2022-2023学年第一学期期末试卷.doc
- 新课程高中数学微积分基本定理导新人教A版选修教案.docx
- 脾心痛病人的护理常规课件.pptx
- 卧床病人的家庭护理及保健.pptx
- 2021高考:【地理06】高中地理综合题的分析思路和答题方法集锦 28.pdf
- 2025年公务员考试申论素材解析及真题应用案例分析.docx
- 八年级疫情防控主题教育班会教案.docx
- 齐齐哈尔大学《民族艺术》2023-2024学年第一学期期末试卷.doc
- 河北农业大学现代科技学院《生物反应与分离综合实验》2023-2024学年第二学期期末试卷.doc
最近下载
- 通达信改良主力追踪指标公式(超准确).docx VIP
- 2025年布袋木偶行业深度研究报告.docx
- 2025海淀区高中信息技术学业水平合格性考试(样卷).docx
- 项目管理人员安全教育培训总结心得体会建筑施工管理人员.pptx VIP
- 项目管理人员安全教育培训.pptx VIP
- (人教PEP版2025新教材)四年级英语上册unit 5 全单元课件.pptx
- 税务会计(第3版)梁文涛技能训练及实战演练参考答案.pdf VIP
- 跨国公司经营与管理试卷.docx VIP
- 2026西藏日喀则市桑珠孜区选(聘)任社区工作者207人考试参考试题及答案解析.docx VIP
- (六年级)人教版六年级上册英语知识点.docx VIP
原创力文档


文档评论(0)