2

したがって、ユーザーが基本クラスを拡張する「API」があり、基本クラスには次のようなものが含まれています

class A {
    A();
    A(int, int);
}

class B : public A {
    B();
}

Bでコンストラクターを実際に設定せずに呼び出すことができるようにしB(int, int)たいので、基本的にはコンストラクターの仮想メソッドのようなものを作成して、既に設定されているが上書きできるようにしたいと思います。これを行う良い方法はありますか、それとも呼び出すコンストラクターを含める必要がありますか?A(int, int)

4

1 に答える 1

4

C++11 では、継承コンストラクターを使用できます。

class B : public A {
    using A::A;
    B();
}

これにより、次のことが可能になります。

B b(42, 42);

C++03 では、手動で行う必要があります。

class B : public A {
    B(int i, int j) : A(i,j) {}
    B();
}
于 2013-09-10T00:27:46.643 に答える