纯虚函数
程序员文章站
2024-01-02 16:13:46
纯虚函数 1.有纯虚函数的类,是抽象类。抽象类不可以被实例化。但是可以定义抽象类的指针。 2.当继承父类是抽象类的时候,子类必须全部覆盖父类的纯虚函数后,才可以被实例化。 ......
纯虚函数
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(); }