これは書かれているようですhere Qtは今まで8つのスマートポインタクラスを特化しています。 あなたが必要とするのはそれだけです。 しかし、これらのスマートポインタのいずれかを使用するには、あなたのクラスを常にQObjectから派生させる必要があります。 Qtに任意のクラスで動作するスマートポインタの他の実装はありますか?Qtのスマートポインタ
18
A
答えて
18
多くのQtクラスはQObjectから派生し、組み込みのスマートポインタクラスのいくつかはQObject(またはQSharedData)に関連していますが、QSharedPointerとQScopedPointerテンプレートはポインタに何かを許可するようです。その向こう
、あなたはBoostでいくつかのsmart pointer templates見つけることができます:
- scoped_ptr - 単一のオブジェクトの簡単な唯一の所有権を。コピー不可能。
- scoped_array - 配列の単純な所有権。コピー不可能。
- shared_ptr - 複数のポインタ間でオブジェクトの所有権が共有されています。
- shared_array - 複数のポインタ間で配列の所有権が共有されています。
- weak_ptr - shared_ptrが所有するオブジェクトを所有していないオブザーバー。
- intrusive_ptr - 参照カウントが埋め込まれたオブジェクトの共有所有権。
関連する問題
- 1. Qtスマートポインタを関数パラメータで使用する
- 2. スマートポインタ
- 3. スマートポインタ
- 4. スマートポインタ
- 5. スマートポインタの質問
- 6. バイナリツリーのスマートポインタ
- 7. C++のスマートポインタ
- 8. Valgrindのは、スマートポインタ
- 9. Visual Studio 2008のスマートポインタ
- 10. 二重リンクリストのスマートポインタ
- 11. ベクトルコンテナ内のC++スマートポインタ
- 12. スマートポインタと配列
- 13. スマートポインタとデストラクタ
- 14. はスマートポインタで
- 15. スマートポインタ相当
- 16. スマートポインタ対参照
- 17. スマートポインタへのvoidへのポインター
- 18. UMLでのスマートポインタの描画
- 19. C++ Visitorパターンとスマートポインタ
- 20. スマートポインタと派生クラス
- 21. スマートポインタとQThread問題
- 22. スマートポインタとJavaでのRef Counting
- 23. のOpenMPおよびスマートポインタ
- 24. ポインタの代わりにスマートポインタ
- 25. スマートポインタとコンストラクタの例外
- 26. 間接マルチレベルのスマートポインタは
- 27. スマートポインタと例外処理
- 28. PythonQtを使ったスマートポインタ
- 29. スマートポインタと自動反復
- 30. スマートポインタを使用したダブルリンクリスト
実際、これらのポインタのほとんどは、QObjectから派生する必要はありません。クラスの中には、クラスが扱う必要があるものや、他のいくつかのQクラスから派生するものがあります。 AFAIKでは、QPointerだけがあなたのクラスをQObjectから派生させる必要があります。つまり、あなたのプロジェクトではQtを使用する必要があります。 –