コーディング規約 第3条
レス数が900を超えています。1000を超えると表示できなくなるよ。
class B {
public: void Func2(){ Func1(); }
private: void Func1(){ m_pA->Func1(); }
private: A*m_pA;
};
このようなコードにおいて、Func1() の存在意義として
A* が X* に変わった場合に、Func1()で吸収できると
>893は申し上げました。要はこうできると言いたいのでしょう。
class B {
public: void Func2(){ Func1(); }
private: void Func1(){ m_pX->Func3(); }
private: X* m_pX;
};
ですが、B::Func1など用意しておかなくても、
↓のよにすれば良いはずです。
class B {
public: void Func2(){ Func1(); }
private: void Func1(){ m_pA->Func1(); }
private: XA* m_pA;
};
class XA {
public: void Func1(){ m_pX->Func3(); }
private: X* m_pX;
};
この方法であればB以外のクラスでもA*を使っていた場合に
XAを使い回せる(他のクラスもA*をXA*に書き換えるだけで済む)はずです。
更にBが外部からAを受け取る形で実装されている場合、
XAをAから派生させて作ればもっと手間が減らせます。
レス数が900を超えています。1000を超えると表示できなくなるよ。