C++ - 纯虚函数与抽象类

  • 纯虚函数:没有函数体的虚函数
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;
}



作者:Mitchell
链接:https://www.jianshu.com/p/852e5bf33f4a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/u013377887/article/details/109002677
今日推荐