問題タブ [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::function からこのポインタを取得するには?
std::function
メンバ関数を保持できるため、オブジェクト インスタンスへのポインタをどこかに格納する必要があります。
メンバー関数を保持するthis
からポインターを取得するにはどうすればよいですか?std::function
c++ - 「this」ポインタはコンピュータのメモリのどこに保存されていますか?
「this」ポインタはメモリのどこに保存されていますか? スタック、ヒープ、またはデータ セグメントに割り当てられていますか?
上記のコードでは、メンバー関数を呼び出してadd()
おり、レシーバー オブジェクトは「this」ポインターとして暗黙的に渡されます。メモリのどこにthis
保存されますか?
c++ - this[0] は C++ で安全ですか?
この前の質問this[0]
では、C# での意味を尋ねています。C++ では、this[0]
「 が指す配列の 0 番目の要素」を意味しthis
ます。
この方法で受信者オブジェクトを参照するために、C++ で未定義の動作が発生しないことが保証されていますか? 私はこの構文を使用することを推奨しているわけではなく、仕様がこれが常に機能することを保証しているかどうかに最も興味があります。
ありがとう!
c++ - this が const でない場合、なぜ変更できないのですか?
The this
pointer [ class.this ] で、C++ 標準は次のように述べています。
this
クラスのメンバ関数のの型X
は ですX*
。
すなわちthis
ありませんconst
。しかし、なぜそれはそれである
与える
言い換えれば、そうでthis
はありませんconst
が、実際にはそうです!
c# - 割り当てなしで C# でこのポインター/参照を返すことによるコマンドの連鎖
これは主に構文に関する質問です。これは、同じ結果を達成するためのさまざまな代替手段を示す関連スレッドです: C# でのメソッドチェーン
現在、C++ では、メソッドがメンバであるオブジェクトへのポインタをメソッドが返すようにすることで、オブジェクトにコマンドを連鎖させることができます。
私が探している構文は次のとおりです。
C#では、これを返すと、値がコピーされます(編集:半分間違っており、回答を読んでください)。参照またはポインターを返すことができないと思いますか? 同じ構文を実現する他の方法はありますか?
今のところ、私の解決策は、次のように結果をオブジェクトに割り当てることです。
ただし、これは最適な解決策ではありません。これは、遅くなり (私の場合は問題になりません)、冗長になるためです。正しい方向への指針があればとてもうれしいです!
c++ - 'this ->' を使用してクラスのメンバーを参照することによる利点やパフォーマンスの向上はありますか?
C ++で「this」を使用しないのではなく、クラスメンバーを参照するために「this」を使用することには、何らかの利点があるのではないかと思っていましたか?
例えば...
c++ - C ++でそれ自体への自己ポインタを持つクラスのコンストラクタをコピーしますか?
データメンバーとして自分自身への自己ポインターを持つクラスのコピーコンストラクターをどのように実装するのかを尋ねたかったのですが、ディープコピーを実装したいのですが、
// how to assign parent
parent = new City(??)
この行がディープコピーの代わりにコンストラクターを再度呼び出すことに混乱していますか? よろしく。
c++ - shared_ptr の代入は「this」ポインターを破棄できますか
子ノードのツリーを表す次のデータ構造 (ノード) の例を見てみましょう。各オブジェクトの子ノードのセットはマップに保存されます>
次のコード サンプルは、ユーザーが通常呼び出すものです。
ここまでは順調ですね。
呼び出し元は、ツリーの深さごとに追加の変数を処理する必要なく、ツリーをトラバースする方法があるのではないかと思いました。
上記の場合、spNode がオブジェクトへの最後の残りの参照である場合、GetChildItem メソッドの次のコード ブロックが心配です。
spChild (実際には呼び出し元の spNode インスタンス) の割り当てによって、最後の参照がなくなったために「この」ノードが誤って破壊されていませんか? (したがって、spChild の代入後に他のメソッドを呼び出すのは危険です)。ここに潜在的なバグがありますか?
回避策は、メソッド呼び出しの先頭に次の行を追加することだと思います。
考え?