纯虚函数
1.有纯虚函数的类,是抽象类。抽象类不可以被实例化。但是可以定义抽象类的指针。
#include <iostream>
using namespace std;
class A{
public:
virtual void eat() = 0;
virtual void sleep() = 0;
};
int main(){
//编译不过
//A a;//抽象类不可以被实例化
A *a;//但是可以定义抽象类的指针
}
2.当继承父类是抽象类的时候,子类必须全部覆盖父类的纯虚函数后,才可以被实例化。
#include <iostream>
using namespace std;
class A{
public:
virtual void eat() = 0;
virtual void sleep() = 0;
void fly(){
eat();
}
};
class Human : public A{
public:
virtual void eat(){
cout << "human eat" << endl;
}
virtual void sleep(){
cout << "human sleep" << endl;
}
};
int main(){
Human p;
A *a = &p;
a->fly();
}