1. 概念:
不能实例化的类叫抽象类,除此之外跟正常的类没有区别。
2. 如何实现:
只要在类中出现一个纯虚函数
纯虚函数的定义如下:
class A{
public:
virtual void show() = 0; //这就是纯虚函数
};
#include <iostream>
using namespace std;
class Animal{
int age;
string name;
public: // 纯虚函数什么权限都行
Animal(string name = "", int age = 0):name(name),age(age){
}
virtual void run() = 0; //纯虚函数的定义
};
class Dog: public Animal{
public:
virtual void run(){
cout << "Dog run()" << endl;
}
};
int main(){
Dog dog;
Animal *pa = new Dog(); //父类指向可以随便改
pa->run();
}
如果一个类继承了抽象类,那么这个类就自动成了抽象类,除非实现这个纯虚函数。