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

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

c++ - std::enable_shared_from_this から継承された自身の shared_ptr を含む自己

この質問は、この質問のフォローアップの質問です:元の質問

から継承するクラスstd::enable_shared_from_thisがあり、このクラスにはstd::shared_ptr<Self>

クラスの詳細が完全で成功したことを知った後、このクラスのコンストラクターのいずれかで、保存さstd::shared_ptr<Self>れているものをshared this.

例:

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

c++ - 「this」ポインターを「arg」引数として pthread_create に渡す必要があるのはなぜですか

私の環境は、ARM gnueabi 上の Linux-Xenomai の C++ です。新しい pthread の生成に成功した後、クラス インスタンスがスレッドのスコープ外にあることがわかりました。スレッドからクラス インスタンス オブジェクト、変数、構造体などにアクセスすると、任意の値が返され、多くの場合、'Segmentation Fault' が返されました。

ネットで解決策を探すのに何日も費やした後、私は推測して、「this」ポインターを pthread_create の引数として使用してみました。そして出来上がり!クラス インスタンスがスレッドから見えるようになりました。問題はなぜですか?

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

c++ - このポインタを持つテンプレートクラスの多重継承コンストラクタは機能しませんか?

Javaを念頭に置いた非常に基本的なコードがあります。オブジェクトとクラスのクラスを作成しましたが、テンプレートで作成しました。

オブジェクト.hpp

オブジェクト.cpp

Class.hpp

Class.cpp

Uint_32.hpp

Uint_32.cpp

t1.cpp

コンパイル コマンド:

やっと今のところコンパイルエラーはありません。すべてのオペレーターのテンプレート定義だけを含む、operators.hpp を含むもう 1 つのファイルがあります。

OUTPUT 実行可能ファイルを実行すると、次の出力が表示されますが、おそらく理由がわかりません。あらゆる方法を試して知りました。また、異なるバージョンの異なるシステムで実行します。

ここで何が起きてるの?継承が正しく呼び出されないのはなぜですか? 安全ではないため、このポインターを渡すべきではないことはわかっていますが、代替手段はないと思います。

私の問題

  1. Object<T>::Object(Class<T>& myReference)は 1 回だけ呼び出されますが、3 回呼び出す必要があります。
  2. 私のポイントでは4つのオブジェクト作成があり、3または5のいずれかでなければなりません(t1.cppのaとb、およびすべてのクラスのUNIEQUEID初期化.
  3. コンストラクター呼び出しの Class.cpp ファイルでこれが機能しないのはなぜですか?
  4. Object<T>::Object()T = Object クラスになるように Object クラスを作成してコンストラクターを呼び出すことができるかどうかを確認する方法はありますか?