3

QObjectポインターを受け取るセッターがあると仮定するのは正しいですか:

  • ポインターがT*?の場合、所有権を取得してポインターを削除します。

    例:void QComboBox::setModel(QAbstractItemModel *)

  • const T*ポインターが?の場合、所有権を取得せず、ポインターを削除しません。

    例:void QLineEdit::setValidator(const QValidator *)

4

3 に答える 3

0

QObject は、削除されるとすべての子を削除します。そのような QObject に子を追加するには、適切な関係を確立する必要があります。

QObject* parent = new QObject();
QObject* child = new QObject(parent);
delete parent;//all the child objects will get deleted when parent is deleted

あなたの例では、そのようなステートメントはありません。呼び出す必要があります

QAbstractItemModel ( QObject * parent = 0 )

関数または呼び出しにポインターを渡す前のコンストラクター

void QObject::setParent ( QObject * parent )
//Makes the object a child of parent.

関数内。

于 2013-11-06T12:51:47.953 に答える