纯虚函数和抽象类
纯虚函数和抽象类
含有纯虚函数的类就叫做抽象类,抽象类是不能够实例化对象的(只要存在纯虚函数就不能实例化)。
在抽象类当中,仅含有纯虚函数的类就叫做接口类(没有数据成员,仅含有成员函数,而且所有
的成员函数都是纯虚函数)。
接口类更多是用来表达一种能力或者协议。
纯虚函数的定义:
1 class CBaseClass { 2 public: 3 CBaseClass(void); 4 virtual ~CBaseClass(void); 5 6 virtual void Fun(void) = 0; // 纯虚函数 7 private: 8 };
由于纯虚函数并没有函数实体,所以虚函数表当中使用0来作为标示纯虚函数,这也作为结束标志的
0是一样的。需要注意的是虚函数表中用来表示纯虚函数和虚函数表结束的标志不一定是0,不同的平台
可能是不一样的。