在多态中,通常父类中的虚函数的实现是毫无意义的,主要都是调用子类中重写的内容,因此,可以将虚函数改写为纯虚函数。
纯虚函数语法:virtual 返回值类型 函数名 (参数列表) = 0;
当类中有了纯虚函数:这个类也称为**抽象类 **
抽象类特点:
1,无法实例化对象
2,子类必须重写抽象类中的虚函数,否则子类也属于抽象类
#include <iostream>
#include <string>
using namespace std;
class VirtualBase
{
public:
//只要有一个纯虚函数,这个函数称为抽象类
//抽象类特点:1、无法实例化对象 2、抽象类的子类必须要重写父类的纯虚函数
virtual void speak() = 0; //纯虚函数
};
class Son : public VirtualBase
{
public:
virtual void speak() //重写纯虚函数
{
cout << "明天会更好" << endl;
}
};
void test01()
{
//VirtualBase b; //无法实例化
//new VirtualBase;
Son *s1 = new Son;
s1->speak();
delete s1;
}
int main()
{
test01();
system("pause");
return 0;
}