問題タブ [this-pointer]
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++ - std::enable_shared_from_this から継承された自身の shared_ptr を含む自己
この質問は、この質問のフォローアップの質問です:元の質問
から継承するクラスstd::enable_shared_from_this
があり、このクラスにはstd::shared_ptr<Self>
クラスの詳細が完全で成功したことを知った後、このクラスのコンストラクターのいずれかで、保存さstd::shared_ptr<Self>
れているものをshared this
.
例:
c++ - 「this」ポインターを「arg」引数として pthread_create に渡す必要があるのはなぜですか
私の環境は、ARM gnueabi 上の Linux-Xenomai の C++ です。新しい pthread の生成に成功した後、クラス インスタンスがスレッドのスコープ外にあることがわかりました。スレッドからクラス インスタンス オブジェクト、変数、構造体などにアクセスすると、任意の値が返され、多くの場合、'Segmentation Fault' が返されました。
ネットで解決策を探すのに何日も費やした後、私は推測して、「this」ポインターを pthread_create の引数として使用してみました。そして出来上がり!クラス インスタンスがスレッドから見えるようになりました。問題はなぜですか?
c++ - このポインタを持つテンプレートクラスの多重継承コンストラクタは機能しませんか?
Javaを念頭に置いた非常に基本的なコードがあります。オブジェクトとクラスのクラスを作成しましたが、テンプレートで作成しました。
オブジェクト.hpp
オブジェクト.cpp
Class.hpp
Class.cpp
Uint_32.hpp
Uint_32.cpp
t1.cpp
コンパイル コマンド:
やっと今のところコンパイルエラーはありません。すべてのオペレーターのテンプレート定義だけを含む、operators.hpp を含むもう 1 つのファイルがあります。
OUTPUT 実行可能ファイルを実行すると、次の出力が表示されますが、おそらく理由がわかりません。あらゆる方法を試して知りました。また、異なるバージョンの異なるシステムで実行します。
ここで何が起きてるの?継承が正しく呼び出されないのはなぜですか? 安全ではないため、このポインターを渡すべきではないことはわかっていますが、代替手段はないと思います。
私の問題
Object<T>::Object(Class<T>& myReference)
は 1 回だけ呼び出されますが、3 回呼び出す必要があります。- 私のポイントでは4つのオブジェクト作成があり、3または5のいずれかでなければなりません(t1.cppのaとb、およびすべてのクラスのUNIEQUEID初期化.
- コンストラクター呼び出しの Class.cpp ファイルでこれが機能しないのはなぜですか?
Object<T>::Object()
T = Object クラスになるように Object クラスを作成してコンストラクターを呼び出すことができるかどうかを確認する方法はありますか?