在某些特殊的情况下,需要用到纯虚函数。
virtual <函数类型> <函数名> <参数列表>=0;
纯虚函数没有函数体。
语法代码后面的“=0”,不代表返回值为0,此种表达方式仅仅是通知系统,这是一个纯虚函数。
一个类中如果只包含这样的纯虚函数,那么,这个类被叫做抽象类。
抽象类不用来定义对象,而只是做为一个基类去派生新的类。
例子:
#include <iostream> using namespace std; class Animal { public: virtual void sleep() = 0; }; class Fish:public Animal { public: virtual void sleep() { cout<<"Fish sleep"<< endl; } }; class Dog:public Animal { virtual void sleep() { cout<< "Dog sleep" << endl; } }; void main() { Animal *animal; Fish fish; Dog dog; animal = &fish; animal->sleep(); animal=&dog; animal->sleep(); }