C++相談室 part19
■ このスレッドは過去ログ倉庫に格納されています
0406デフォルトの名無しさん
NGNG作成したインスタンスを初期化するために、下のような初期化メソッドを持たせています。
class CSuper {
protected:
int m_value;
public:
CSuper();
~CSuper();
void Init(int inValue){m_value = inValue};
};
これのサブクラスを作った場合、追加されたメンバ変数も初期化したいので
class CSub : public CSuper
{
protected:
int m_value2;
public:
CSub();
~CSub();
void Init(int inValue, int inValue2) {
Init(inValue);
m_value2 = inValue2;
};
};
こんな風にしています。でもこれだと、CSubを作るときに間違ってCSuperのInit(int inValue)を呼んでしまうかもしれません。どうすればいいですか。InitSuper(), InitSub()とか名前を変えたほうが良いんでしょうか。
どっちにしても間違った初期化関数を呼んでしまう可能性がありますし、美しくない気がします。
■ このスレッドは過去ログ倉庫に格納されています