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