4

私は常にSOLIDの原則を適用しようとしていますが、Qtツールキットは本当に気に入っていますが、単一の継承ルールで常に苦労しています。

多重継承を使用している場合、mocは、最初に継承されたクラスがQObjectのサブクラスであると想定します。 また、最初に継承されたクラスのみがQObjectであることを確認してください。

QObjectルールからの単一の継承とインターフェイス分離の原則をどのように組み合わせるか。
信号とスロットを使用してインターフェイスを定義したいのですが、これを行うことは許可されていません。

このショートカミングをどのように回避しますか?

4

2 に答える 2

5

シグナルとスロットは、特別な振る舞いをする関数にすぎないことに注意してください。したがって、それらを使用してインターフェイスを作成できます。

プロセスの完全な説明と複雑なケースの完全な回避策については、Qt Quarterly #15を参照してください。

于 2009-09-29T16:29:17.793 に答える
1

Qtのシグナル/スロットメカニズムで簡単に回避できるとは思いません。boost::signals または sigc ライブラリのいずれかを調べることができます。どちらも、シグナルとスロットを配置できる場所がより柔軟です。ライブラリと Qtsignalsおよびslotsマクロのいずれかと名前空間が競合する可能性があることに注意してください。

于 2009-09-29T15:42:08.280 に答える