虚函数的概念与作用 为什么要用虚函数?
为什么要用虚函数?
当使用基类指针指向不同派生类的对象时,如果基类指针调用其虚成员函数,则会调用实际指向该对象的成员函数,而不是基类中定义的成员函数(只要派生类重写成员函数即可)。如果它不是虚函数,则无论基类指针指向哪个派生类对象,都将调用在基类中定义的函数。
什么是虚函数?
虚拟函数定义:如果在基类中指定了一个函数,并且派生类中存在该函数的另一个定义,则编译器将知道我们不希望静态连接该函数。我们真正需要的是根据调用函数的对象的类型来选择在程序的特定位置调用哪个函数。
功能:用专业术语解释虚拟功能的功能就是实现多态性,多态性就是将接口和实现分开;用可视化语言解释虚拟功能的功能就是用常用的方法来实现,但由于个体差异,采用不同的策略。
虚函数有什么作用?
C中虚函数的函数:1。为了方便地使用多态性,我们经常需要在基类中定义虚函数。2在许多情况下,基类本身生成对象是没有意义的。例如,作为基类,动物可以派生老虎和孔雀等子类,但动物自己生成对象显然是不合理的。为了解决上述问题,引入了纯虚函数的概念,将函数定义为纯虚函数(方法:virtualreturntypefunction()=0)。编译器要求必须在派生类中重写函数才能实现多态性。具有纯虚函数的类称为抽象类,它不能生成对象。这是解决上述两个问题的好办法。在C中使用虚拟函数:例如,你有一个游戏,其中有一个虚拟基类叫做“怪物”和一个纯虚拟函数“攻击”。然后导出了wolf、spider和Python三个子类。它们都实现了各自不同的“攻击”功能。比如,狼咬人,蜘蛛吐丝,蟒蛇缠你。当许多怪物出现时,你可以定义一个虚拟基类指针数组,给它们各种怪物的指针,然后在迭代过程中用monster[i]->attack()直接攻击玩家。请参见下图:扩展信息:使用虚拟函数的注意事项:首先,包含虚拟函数的类指针列表将增加。2、 虚拟析构函数析构函数的功能是在对象被撤销之前进行必要的“清理场景”工作。当派生类的对象从内存中取出时,首先调用派生类的析构函数,然后调用基类的析构函数。当我们新建一个临时对象时,如果基类包含一个析构函数并定义了一个指向基类的指针变量。3、 构造函数不能声明为虚拟函数。构造函数不能声明为虚拟函数。如果声明为虚拟函数,编译器将自动报告。第四,我们不能在析构函数或构造函数中调用虚函数而不在析构函数或构造函数的过程中进行析构函数或构造函数。即使我们在构造函数或析构函数中调用虚函数,我们也不会向下调用派生类中的函数。
虚函数的概念与作用 虚函数有什么用 virtual虚函数的作用
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。