美文网首页C++C++
C++ - 纯虚函数与抽象类

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

作者: Mitchell | 来源:发表于2016-01-27 15:08 被阅读325次
    • 纯虚函数:没有函数体的虚函数
    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;
    }
    

    相关文章

      网友评论

        本文标题:C++ - 纯虚函数与抽象类

        本文链接:https://www.haomeiwen.com/subject/ubgdkttx.html