C++ダミーベースクラスと抽象クラスの関係

1588 ワード

2018-02-07     :Ruo_Xiao
    :VS2010
  :xclsoftware@163.com

一、区別
  • ダミーベースクラス:「virtual」に継承されたクラス、すなわち任意のクラスがダミーベースクラスになることができる.
  • 抽象クラス:クラス内で定義されていても、少なくとも1つの純粋な虚関数を含むクラス.
  • 両者には何の連絡もありません.

  • 二、ソースコード
    class CHuman
    {
    public:
        virtual int add(int a,int b)
        {
            return (a + b);
        }
        virtual int cross(int a,int b) = 0
        {
            return (a*b);
        }
    };
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        CHuman *pHuman = NULL;
        //error C2259: “CHuman”:         
        //      :
        //“int CHuman::cross(int,int)”:     
        pHuman = new CHuman();
        return 0;
    }

    上記のコードから,抽象クラスは純粋な虚関数が定義されていてもインスタンス化できないことが分かる.