私はライブラリによって提供されるクラスGrandparent
を持っています。私はGrandparent
のサブクラスのためのインタフェースを定義したいと思いますので、私はParent
という抽象サブクラスを作成しました:抽象クラスを介して祖父母クラスのコンストラクタに引数を渡す
class Grandparent {
public:
Grandparent(const char*, const char*);
};
class Parent : public Grandparent {
public:
virtual int DoSomething() = 0;
};
Grandparent
のコンストラクタは2つの引数を取ります。私は...もちろん
class Child : public Parent {
public:
Child(const char *string1, const char *string2)
: Grandparent(string1, string2)
{}
virtual int DoSomething() { return 5; }
};
のようなものを、二つの引数を持つコンストラクタを持っている私の子クラス、Child
を、好きで、ちょうどGrandparent
のコンストラクタにこれらを渡したい、Child
のコンストラクタを呼び出すことはできませんその親クラスのコンストラクタであり、その親クラスのコンストラクタのみです。しかしParent
はコンストラクタを持つことができないので、これらの値をどのようにして祖父のコンストラクタに渡すことができますか?
は、なぜあなたは 'Parent'がコンストラクタを持つことができないということだと思います参照してください? –