私はこのレイアウトを持っています
class Base {
public:
virtual void Initialize() { // base Implementation }
Base() { Initialize(); }
};
class der_1 : public Base
{
public:
der_1() : Base() {}
virtual void Initialize() { // der_1 Implementation }
};
class der_2 : public Base
{
public:
der_2() : Base() {}
virtual void Initialize() { // der_2 Implementation }
};
これで、クラス der_1 または der_2 の新しいオブジェクトを作成するたびに、Initialize() の基本実装を呼び出すことになります。どうやら、オブジェクトの作成中に仮想関数を呼び出すことはできません。
今のところ、タイプ der_1 または der_2 のオブジェクトを作成した後に Initialize 関数を呼び出していますが、オブジェクトが作成されるたびに Initialize 関数呼び出しが結合されるため、これは正しい方法ではないようです。
誰かがより良い代替案を提案できますか?