-3

多重継承について質問です。クラス A があります。クラス A には、B、C、D などのいくつかの継承者があります。

クラス X はクラス B、C、D の継承者です。クラス X のコンストラクターからクラス A のコンストラクターにパラメーターを渡すにはどうすればよいですか?

4

1 に答える 1

2

これとこれを読んで

私が理解しているように、オブジェクトは次のように設定されています。ここで、X はすべてのスーパークラスです。

   X
  /|\
 B C D
  \|/
   A

コンストラクターをチェーンできます。したがって、クラス X のコンストラクターへの定義では、B、C、D を構築するために必要なデータを渡し、必要に応じてそれらが X を構築します。

あなたがやりたいことを例示するこのC++コードの投稿の例を参照してください。

ただし、継承スキームにはいくつかの問題があることに注意してください。ほとんどの場合、継承より合成を優先する方が適切です。定義しているオブジェクト間の関係を自問したい場合があります: B は X ですか、C は X ですか、D は X ですか? またはBはXを持っていますか?C? え?A についても同じように尋ねてください。終了したら、コードを再編成して、これが関連しないようにすることができます。ただし、この編成が避けられない場合は、オブジェクトがスーパークラス データを管理する方法について、C++ に関する信頼できる情報源を参照することをお勧めします。この場合、A は X のインスタンスを 3 つ持っている可能性があると思います。A が B、C、D の間で共通の X 祖先を 1 つだけ持つようにするために、追加の作業が必要になる場合があります。頭...

于 2012-04-28T06:25:20.433 に答える