問題タブ [qsharedpointer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - RtlFreeHeap に指定された QSharedPointer 無効なアドレス
を多用するプログラムがありQSharedPointer
ます。プログラムを実行すると問題なく動作しますが、GDB でデバッグするとエラーが発生し始めます。"Invalid Address specified to RtlFreeHeap"
次のコードでスローされます。
この行を無効にするとp->empty()
、プログラムは問題なく実行されます。何か案は?
c++ - QSharedPointerとQSharedDataPointerの違いは?
これらの2つのタイプのポインターの違いは何ですか?私が読む限り、QSharedPointerは状況をうまく処理できますが、QSharedDataPointerの必要性は何ですか?
c++ - QSharedPointer によって管理されるポインターの削除を防ぐ方法
Qt アプリケーションで断続的なセグメンテーション エラーが発生します。この問題は、 の (悪い) 使用に関連していると思いますQSharedPointer
。Qt ドキュメントには次のように記載されています。
QSharedPointer::QSharedPointer ( T * ptr ) : ptr を指す QSharedPointer を作成します。ポインター ptr は、この QSharedPointer によって管理されるようになり、別の QSharedPointer オブジェクトに渡したり、このオブジェクトの外で削除したりしてはなりません。
私たちは両方をやっていると思います... :/
QSharedPointer
によって管理されているポインターを削除したり、別のポインターに渡したりできないようにする OOP の方法はありQSharedPointer
ますか?
最善の解決策は、コンパイラ エラーを発生させることです。
c++ - この表現を説明してください
ここTest
で、抽象インターフェイス クラスです。このTestPtr
クラスは、スマート ポインター クラスとして機能する必要があります。
これは classTestPtr
が class から派生したということTest
ですか? クラス テストはスマート ポインターで囲まれていますか? QSharedPointer
それはテンプレートクラスだと読みました。誰か明確にしてくれませんか?
c++ - Qsharedpointerクラス
私は次のようにスマートポインタクラスを使おうとしています
クラスA*のオカレンスをクラスBに置き換える予定です。このアプローチは正しいですか?
qt - クラス「QSharedPointer」のコンストラクター' は 'explicit' と宣言されています - このエラーを解決する方法
使用しようとすると、次のエラーが表示されます。
次に、コード内の Test* を CTest に置き換えます。私は何が欠けていますか?
qt - QPair の初期化
次のステートメントを使用すると、
スマートポインタはどこItemB
ですか.ie typedefQSharedpointer<Z> ItemB
テストをインスタンス化するとき、初期化値を提供する必要がありますか? 例えば:test Inst1(0,0);
またはQPair
、デフォルトの構築値を自動的に提供しますか?
c++ - Boost::shared_ptrに相当するQtスマートポインタ?
私はBoost::shared_ptr
以前のプロジェクトで使用していましたが、Qt で同じ/同様のことを行うスマート ポインターを見つけたいと考えています。Qt には多くのスマート ポインター クラスがあるため、どれを使用するか迷っていました。ですかQSharedPointer
?
c++ - QTcpSocketと削除
Qtを使用してtcpベースのサーバーを作成しています。
このサーバーをマルチスレッド化する予定なので、tcpserverクラスはを継承しQTcpServer
てオーバーライドしますincomingConnection()
。ユーザーの削除を除いて、すべて問題ありません。
TcpServer
クラスはのリストを管理しますQSharedPointer<Client>
。上記のクライアントをリストから削除すると、スマートポインターが原因で自動的に削除されます。私のClientクラスはを所有しています。これは、クライアントが削除されたときにクライアントが削除されるQSharedPointer<QTcpSocket>
ことを意味します
。QTcpSocket
問題は、Qtが削除後にこのソケットを使用しようとしたため、セグメンテーション違反が発生したようです。
ソケットのリストのみを管理し、deleteLater()
不要になったときに呼び出す必要がありますか?または、クライアントクラスのソケットのポインタを通常のポインタに切り替える必要がありますか?
c++ - new []でQSharedPointerを使用すると、valgrindで「Mismatchedfree()/ delete/delete[]」が生成されます
私は次のコードを持っています:
ある時点で、QSharedPointer
この関数によって返されるものはスコープ外になり、コンストラクターに設定されたポインターは解放されます。valgrind 3.6.1を使用すると、「Mismatched free()/ delete/delete[]」エラーが発生します。私の使用に何か問題がありますか、QSharedPointer
それともこのvalgrind警告に耐えなければなりませんか?