問題タブ [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.

0 投票する
1 に答える
784 参照

c++ - RtlFreeHeap に指定された QSharedPointer 無効なアドレス

を多用するプログラムがありQSharedPointerます。プログラムを実行すると問題なく動作しますが、GDB でデバッグするとエラーが発生し始めます。"Invalid Address specified to RtlFreeHeap"次のコードでスローされます。

この行を無効にするとp->empty()、プログラムは問題なく実行されます。何か案は?

0 投票する
1 に答える
10058 参照

c++ - QSharedPointerとQSharedDataPointerの違いは?

これらの2つのタイプのポインターの違いは何ですか?私が読む限り、QSharedPointerは状況をうまく処理できますが、QSharedDataPointerの必要性は何ですか?

0 投票する
4 に答える
2411 参照

c++ - QSharedPointer によって管理されるポインターの削除を防ぐ方法

Qt アプリケーションで断続的なセグメンテーション エラーが発生します。この問題は、 の (悪い) 使用に関連していると思いますQSharedPointerQt ドキュメントには次のように記載されています。

QSharedPointer::QSharedPointer ( T * ptr ) : ptr を指す QSharedPointer を作成します。ポインター ptr は、この QSharedPointer によって管理されるようになり、別の QSharedPointer オブジェクトに渡したり、このオブジェクトの外で削除したりしてはなりません

私たちは両方をやっていると思います... :/

QSharedPointerによって管理されているポインターを削除したり、別のポインターに渡したりできないようにする OOP の方法はありQSharedPointerますか?

最善の解決策は、コンパイラ エラーを発生させることです。

0 投票する
5 に答える
281 参照

c++ - この表現を説明してください

ここTestで、抽象インターフェイス クラスです。このTestPtrクラスは、スマート ポインター クラスとして機能する必要があります。

これは classTestPtrが class から派生したということTestですか? クラス テストはスマート ポインターで囲まれていますか? QSharedPointerそれはテンプレートクラスだと読みました。誰か明確にしてくれませんか?

0 投票する
1 に答える
1795 参照

c++ - Qsharedpointerクラス

私は次のようにスマートポインタクラスを使おうとしています

クラスA*のオカレンスをクラスBに置き換える予定です。このアプローチは正しいですか?

0 投票する
1 に答える
991 参照

qt - クラス「QSharedPointer」のコンストラクター' は 'explicit' と宣言されています - このエラーを解決する方法

使用しようとすると、次のエラーが表示されます。

次に、コード内の Test* を CTest に置き換えます。私は何が欠けていますか?

0 投票する
1 に答える
3222 参照

qt - QPair の初期化

次のステートメントを使用すると、

スマートポインタはどこItemBですか.ie typedefQSharedpointer<Z> ItemB

テストをインスタンス化するとき、初期化値を提供する必要がありますか? 例えば:test Inst1(0,0);

またはQPair、デフォルトの構築値を自動的に提供しますか?

0 投票する
3 に答える
2328 参照

c++ - Boost::shared_ptrに相当するQtスマートポインタ?

私はBoost::shared_ptr以前のプロジェクトで使用していましたが、Qt で同じ/同様のことを行うスマート ポインターを見つけたいと考えています。Qt には多くのスマート ポインター クラスがあるため、どれを使用するか迷っていました。ですかQSharedPointer

0 投票する
2 に答える
4038 参照

c++ - QTcpSocketと削除

Qtを使用してtcpベースのサーバーを作成しています。

このサーバーをマルチスレッド化する予定なので、tcpserverクラスはを継承しQTcpServerてオーバーライドしますincomingConnection()。ユーザーの削除を除いて、すべて問題ありません。

TcpServerクラスはのリストを管理しますQSharedPointer<Client>。上記のクライアントをリストから削除すると、スマートポインターが原因で自動的に削除されます。私のClientクラスはを所有しています。これは、クライアントが削除されたときにクライアントが削除されるQSharedPointer<QTcpSocket>ことを意味します 。QTcpSocket

問題は、Qtが削除後にこのソケットを使用しようとしたため、セグメンテーション違反が発生したようです。

ソケットのリストのみを管理し、deleteLater()不要になったときに呼び出す必要がありますか?または、クライアントクラスのソケットのポインタを通常のポインタに切り替える必要がありますか?

0 投票する
1 に答える
2123 参照

c++ - new []でQSharedPointerを使用すると、valgrindで「Mismatchedfree()/ delete/delete[]」が生成されます

私は次のコードを持っています:

ある時点で、QSharedPointerこの関数によって返されるものはスコープ外になり、コンストラクターに設定されたポインターは解放されます。valgrind 3.6.1を使用すると、「Mismatched free()/ delete/delete[]」エラーが発生します。私の使用に何か問題がありますか、QSharedPointerそれともこのvalgrind警告に耐えなければなりませんか?