0

クラス A にメソッドがdo();あり、クラス B にフィールドがあるとしますdata;do()methodと fieldを持つ A と B からクラス共用体を作成する方法 (たとえば Boost を使用) があるのだろうdataか?

4

2 に答える 2

1

Union は c および c++ で特定の意味を持ちますが、それはあなたが望むものではありません。とのC両方から継承するクラスである多重継承が必要なようです。または、クラスおよびのインスタンスを含むクラスを作成することもできます。多くの場合、合成 (「has-a」) は継承 (「is-a」) よりも優先されます。ABCAB

于 2012-12-09T15:52:11.483 に答える
0

地獄のチャンスではありません。これには、現在 C++ 言語には存在しないリフレクションが必要です。たとえ存在したとしても、なぜそれをしたいのかという理由から、誰もそのようなことを実装した可能性はほとんどありません。最も近いのは、両方のクラスから継承した場合です。

于 2012-12-09T15:48:37.487 に答える