永发信息网

什么是虚函数

答案:5  悬赏:40  手机版
解决时间 2021-03-22 13:12
什么是虚函数
最佳答案
可以让成员函数操作一般化,用基类的指针指向不同的派生类的对象时,
基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数,
而不是基类中定义的成员函数(只要派生类改写了该成员函数)。
若不是虚函数,则不管基类指针指向的哪个派生类对象,调用时都
会调用基类中定义的那个函数。


class A
{
virtual void AAA()
{
cout<<"这是基类的!";
}
};
class a:A
{
void AAA()
{
cout<<"这是派生类a!";
}
};

然后你生成a的实例,调用AAA()方法时,程序调用的是a中的AAA,而不是A中的AAA
如果你不定义virtual,在生成a的实例后调用的是基类的AAA()
全部回答
和复变函数相关的,含虚数
i就是虚数,它是用 i^2=-1 来定义的
虚数域与实数域构成复数域这个集合
说简单点虚函数就是复变函数的一部分,
复变函数是大学的内容,不要太关注了,还是很难学的
所谓的虚函数就是在Delphi中函数后面带关键字virtual的函数,它的作用主要就是后期绑定。所谓的后期绑定就是一个基类中有一个虚函数,而派生类中重写了这个函数,那么调用的这个虚函数的时候根据类的实例的不同而调用不同的函数。
所谓的实例就是对象,就是类的实现的东东。要使用类就需要创建类的实例,否则类就不能使用,除非使用类的静态函数和静态成员。
如果还不清楚,那么推荐你去看《Object Pascal技术手册》里面好像有讲,《Delphi x开发人员指南》里面好像也有讲,这些问题比较基础,应该自己去看书
虚函数实际上就是某个类的一个成员函数,只是这个成员函数的声明带有virtual关键字,这样可以实现C++中的多态,具体用法就和楼上说的差不多
每个类都有一个虚函数表,只要你在类中定义了一个虚函数,编译器便会在你的类中添加一个隐藏变量(一个void型的指针)指向这个表的入口地址
虚函数是重载的另一种表现形式,是一种动态的重载方式。
原类:class1
虚函数 A
由class1 继承类 class2
重新定义函数 A
这样当你用class1产生的对象 调用A 为class1的A
用class2产生的对象 调用A 为class2的A
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单选题下列物体中质量可能为0.2kg的是A.一只
一手撑破天《字谜》
什么情况正极需要加水 如碱性锌猛材料的正极
虾子特色羊肉粉这个地址在什么地方,我要处理
单选题下列关于细胞全能性的叙述,不正确的是
馨梦家纺地址好找么,我有些事要过去
搜狗浏览器急需解决IE内核失败,许多网页打不
我买了二手车,车牌比较好,不知道车牌能不能
刘氏和范氏有什么渊源?速求答案
保护藏羚羊的宣传标语,关于植树造林或爱护花
如图所示是一个半径为R的圆形轨道,运动员正
味道府42%500mlv8v10酒价格
李寄斩蛇文言文阅读答案
牛头梗为什么不咬小孩,2个月的牛头梗给他吃什
好德便利(大同路店)怎么去啊,有知道地址的么
推荐资讯
严庄我想知道这个在什么地方
河南省洛阳市九十二路公交车路线
恭喜大病痊愈的句子,关心大病初愈的句子
单选题What’sthesloganofthe2008Beijin
做什么,一年能赚几个亿?自己创业。
---IseldomwatchTV,butlistentotheradioalot.
单选题关于“人类基因组计划”下列叙述中不正
常见的软体动物有哪些,软体动物主要特征是什
永远的伊苏和伊苏有什么不同
惠普打印产品专卖店怎么去啊,有知道地址的么
为什么感觉自己没有感情啦
People and the sources of air pollution ar
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?