什么是虚函数?
虚拟函数定义:如果在基类中指定了一个函数,而在派生类中有另一个函数定义,编译器将知道我们不想静态连接函数。我们真正需要的是根据调用函数的对象的类型来选择在程序的特定位置调用哪个函数。
功能:用专业术语解释虚拟功能的功能就是实现多态性,多态性就是将接口和实现分开;用可视化语言解释虚拟功能的功能就是用常用的方法来实现,但由于个体差异,采用不同的策略。
什么是虚函数和纯虚函数,有什么区别?
虚拟函数和纯虚拟函数都可以在其子类中重写。它们之间的区别在于:(1)纯虚函数只有定义,没有实现,虚函数既有定义又有实现代码。纯虚函数一般没有代码实现部分,如virtualvoidprint()=0,而一般虚函数必须有代码实现部分,否则函数将是未定义的。virtualvoidprint(){printf(“thisisvirtualfunctionn”)}(2)包含纯虚函数的类不能定义其对象,而包含虚函数的类可以定义其对象。
虚函数的作用是什么?
c中虚函数的函数:1。为了方便地使用多态性,我们经常需要在基类中定义虚函数。2在许多情况下,基类本身生成对象是没有意义的。例如,作为基类,动物可以派生老虎和孔雀等子类,但动物自己生成对象显然是不合理的。为了解决上述问题,引入了纯虚函数的概念,将函数定义为纯虚函数(方法:virtualreturntypefunction()=0)。然后编译器要求必须在派生类中重写函数才能实现多态性。具有纯虚函数的类称为抽象类,它不能生成对象。这是解决上述两个问题的好办法。在c中使用虚拟函数:例如,你有一个游戏,其中有一个虚拟基类叫做“怪物”和一个纯虚拟函数“攻击”。然后导出了wolf、spider和python三个子类。它们都实现了各自不同的“攻击”功能。比如,狼咬人,蜘蛛吐丝,蟒蛇缠你。当许多怪物出现时,你可以定义一个虚拟基类指针数组,给它们各种怪物的指针,然后在迭代过程中用monster[i]->attack()直接攻击玩家。请参见下图:使用虚拟函数的注意事项:首先,包含虚拟函数的类指针列表将增加。2、虚拟析构函数析构函数的功能是在对象被撤销之前进行必要的“清理场景”工作。当派生类的对象从内存中取出时,首先调用派生类的析构函数,然后调用基类的析构函数。当我们新建一个临时对象时,如果基类包含一个析构函数并定义了一个指向基类的指针变量。3、构造函数不能声明为虚拟函数。构造函数不能声明为虚拟函数。如果声明为虚拟函数,编译器将自动报告。第四,我们不能在析构函数或构造函数中调用虚函数而不在析构函数或构造函数的过程中进行析构函数或构造函数。即使我们在构造函数或析构函数中调用虚函数,我们也不会向下调用派生类中的函数。
原文标题:虚函数的概念与作用 什么是虚函数?,如若转载,请注明出处:https://www.saibowen.com/tougao/18032.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。