C++纯虚函数的C++纯虚函数

如题所述

第1个回答  2016-05-27

纯虚函数是在基类中声明的虚函数,它可以在基类中有定义,而且派生类必须定义自己的实现方法。基类不能生成对象,可以使用指针或者引用派生类对象。基类不在基类中实现纯虚函数的方法是在函数原型后加“=0”
virtual void funtion1()=0 1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。
2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。
为了解决上述问题,引入了纯虚函数的概念,将函数定义为纯虚函数(方法:virtual ReturnType Function()= 0;),则编译器要求在派生类中必须予以重写以实现多态性。同时含有纯虚拟函数的类称为抽象类,它不能生成对象。这样就很好地解决了上述两个问题。 1、多态性
指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。C++支持两种多态性:编译时多态性,运行时多态性。
a.编译时多态性:通过重载函数实现
b 运行时多态性:通过虚函数实现。
2、虚函数
虚函数是在基类中被声明为virtual,并在派生类中重新定义的成员函数,可实现成员函数的动态重载
3、抽象类
包含纯虚函数的类称为抽象类。由于抽象类包含了没有定义的纯虚函数,所以不能定义抽象类的对象。

第2个回答  2019-08-23
基类定义纯虚函数后。子类必须完善函数体才可以定义对象。如果不对此纯虚函数完善。依旧无法定义对象。也就是说对子类也有限制作用。有利于接口一致。更好的实现多态。个人看法。
第3个回答  2020-06-18
这么明显的错误看不出来吗?
基类
里面有这个
虚函数

virtual
double
getVolume()=0;//体积
在继承类里面没有实例化,三角形没有体积,你把基类里面的求体积注释掉。
相似回答