2012-04-12 10 views
0

複数の継承を使用してC++で図を表現するにはどうすればよいでしょうか?または、この場合に複数の継承を使用する必要がありますか?基本クラスにChild1インスタンスとChild2インスタンスを作成して使用することはできませんか?C++で多重継承:複数の継承を持つC++で図を表現するにはどうすればよいでしょうか?

enter image description here

+2

あなたが達成したいですか?この図からは明らかではない。共通のインタフェースを使用して子インスタンスを接続する場合は、ベースクラスに配置します。 –

+0

はい。子クラスを接続したい。コードの概要を教えていただけますか? – FlintOff

+0

これは、子ケースをどのように接続するかによって異なります。 – juanchopanza

答えて

0

これは擬似コードですが、階層を説明する必要があります

解決方法1:

class IBaseInterface {} 

class Base : IBaseInterface {} 

class Child1 : Base {} 

class Child2 : Base {} 

解決方法2:

class IChildInterface {} 

class Base {} 

class Child1 : Base, IChildInterface {} 

class Child2 : Base, IChildInterface {} 
+0

解決策1:IBaseInterfaceがある理由 – FlintOff

+0

インターフェイスは基本クラスにあるので、私はそのように呼びました。 2つのソリューションは効果的です:基本クラスの子クラスを接続するインターフェイスを持つようにして、子コンポーネントが継承するか、インターフェイスから接続するすべての子を派生させるようにします。 – ChrisWue

+0

はい。そして、私が派生したものは何でも安全だから、仮想継承とそのすべてを行う必要はありません。 –

0

は、「私は作成できません基本クラスのChild1インスタンスとChild2インスタンスを使用してそれらを使用しますか? "私はあなたが達成しようとしているものだと思い

はこれです、何の多重継承は必要ありません:

class IChildInterface {} 

class Base { IChildInterface* child; } 

class Child1: public IChildInterface 
class Child2: public IChildInterface