纯虚函数
纯虚函数: 没有函数体的虚函数
class A {
private:
int a;
public:
virtual void Print( ) = 0 ; //纯虚函数
void fun() { cout << “fun”; }
纯虚函数: 没有函数体的虚函数
class A {
private:
int a;
public:
virtual void Print( ) = 0 ; //纯虚函数
void fun() { cout << “fun”; }
};
抽象类
抽象类: 包含纯虚函数的类
• 只能作为 基类 来派生新类使用
• 不能创建抽象类的对象
• 抽象类的指针和引用 由抽象类派生出来的类的对象
A a; // 错, A 是抽象类, 不能创建对象
A * pa; // ok, 可以定义抽象类的指针和引用
pa = new A; //错误, A 是抽象类, 不能创建对象
纯虚函数和抽象类
4
抽象类中,
• 在 成员函数 内可以调用纯虚函数
• 在 构造函数/析构函数 内部不能调用纯虚函数
如果一个类从抽象类派生而来
它实现了基类中的所有纯虚函数, 才能成为非抽象类