0

多重継承が必要になるシナリオはありますか? 例を挙げてください。

4

6 に答える 6

4

他のOOP言語が持つインターフェースのようなものをシミュレートしたい場合は、複数の継承を使用する必要があります。

于 2009-07-15T18:44:54.320 に答える
2

継承が「必要」で、単一のクラスで複数回使用したい、または単一のクラスに結合したいものは、多重継承が「必要」です。

継承を使用する一般的な C++ イディオムには、次のものがあります。

したがって、複数のインターフェースを実装する単一のクラスが必要な場合は、多重継承が必要です。ポリシーベースの反復子タイプが必要な場合は、複数の継承が必要です (ポリシー用に 1 回、特性用に 1 回)。

すべての場合において、同じ出力を持ち、多重継承を使用しないプログラムを作成できることは明らかであるため (「Turing complete だけが重要です」という引数を使用します)。ただし、Turing の完全性だけが重要なわけではありません。通常、Turing の入力と出力を備えたプログラムの概念を超えるソフトウェアを作成するという目標があります。ソースがどのように見えるかを気にします。だから「必要」。

于 2009-07-15T19:11:33.610 に答える
1

純粋な抽象クラスを使用すると、JavaやC#の場合と同じようにインターフェイスを使用できます。

于 2009-07-15T18:45:01.887 に答える
0

開発者が怠惰で、多重継承を必要としないより良いクラス設計を作成したくない場合;-)私は主にC#でコーディングし、単一継承のみを許可するという設計を呪うシナリオを見つけたことがありません。

そうは言っても、複数のインターフェースを実装できること本当に便利です。

于 2009-07-15T18:44:35.647 に答える
0

チューリングマシン以外のものが必要なシナリオはありません。

于 2009-07-15T18:47:17.047 に答える
0

COM オブジェクトを構築する場合。

于 2009-07-15T20:09:25.087 に答える