0

独自のタイプを Qt MetaObject System に追加する必要があります (メタタイプを登録します)。手動のため、次の要件を満たす必要があります。

  • デフォルトのコンストラクタ
  • コピーコンストラクター
  • デストラクタ

私のクラスは、デフォルトのコンストラクターでは意味がありません。QT MOS を満たすためだけに作成されます。ただし、Qtがデフォルトのctorを呼び出す方法、時期、および理由は? クラスが動的に作成された要素へのポインターを格納するとどうなりますか? MOS はそのようなクラスのコピーを作成し、それを削除してすべてのポインターを解放しますか?

4

1 に答える 1

0

MOS はそのようなクラスのコピーを作成し、それを削除してすべてのポインタを解放しますか?

はい、イベントを発表するときは、最初にコピーされます。これは、あるスレッドから別のスレッドへのイベントの送信を簡素化するために、このように行われます。

クラスが動的に作成された要素へのポインターを格納するとどうなりますか? MOS はそのようなクラスのコピーを作成し、それを削除してすべてのポインターを解放しますか?

それが、カスタム コピー コンストラクターの目的です。これは、すべてが正常にコピーされ、メモリ リーク (またはその他の問題) が発生しないようにするための作業です。


最後に、私はそれが話している場所を見つけました。このリンクにあります:

オプションの type パラメータは、確立する接続のタイプを記述します。具体的には、特定の信号をすぐにスロットに配信するか、後で配信するためにキューに入れるかを決定します。シグナルがキューに入れられた場合、Qt は引数をコピーして舞台裏のイベントに格納する必要があるため、パラメーターは Qt のメタオブジェクト システムに認識されている型でなければなりません。キュー接続を使用しようとしてエラー メッセージが表示される場合

于 2013-08-05T12:21:30.227 に答える