のドキュメントでこれに出くわしましたQMainWindow::setMenuBar(QMenuBar * menuBar)
:
注: QMainWindow は menuBar ポインターの所有権を取得し、適切なタイミングで削除します。
コード例 ( から派生したクラスのメソッド内QMainWindow
):
QMenuBar * menuBar = new QMenuBar(this);
setMenuBar(menuBar) // <-- immediately transfer ownership
// use menuBar pointer to add actions, menus, and what not
QMenuBar
を呼び出した後でも、自分のローカル ポインターを頼りにすることはできますsetMenuBar
か? つまり、それは完全に保証されていますか?
QMainWindow
派生クラスを削除すると、QMenuBar
オブジェクトは構築時に親として設定されるため、オブジェクトも削除されますが、参照/ポインターのコピー以外QMainWindow
の後の「所有権の引き継ぎ」にはどのようなポリシーがありますか?setMenuBar