- 纯虚函数:没有函数体的虚函数
class A{
private:
int a;
public:
virtual void Print() = 0;//纯虚函数
}
- 抽象类:包含纯虚函数的类
- 只能作为基类来派生新类使用
- 不能创建抽象类的对象
- 抽象类的指针和引用 -> 由抽象类派生出来的类的对象
A a;//错,A 是抽象类,不能创建对象
A *pa;//ok,可以定义抽象类的指针和引用
pa = new A;//错误,A 是抽象类,不能创建对象
- 抽象类中
- 在成员函数内可以调用纯虚函数
- 在构造函数/析构函数 内部不能使用纯虚函数
- 如果一个类从抽象类派生而来
它必须实现了基类中的所有纯虚函数,才能成为非抽象类 - 举例
class A{
public:
virtual void f() = 0;
void g(){ this->f(); }
A(){}
};
class B:public A{
public:
void f(){ cout<<"B:f()"<<endl;}
};
int main(){
B b;
b.g();
return 0;
}
网友评论