問題タブ [member-pointers]
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++ - C++ テンプレートとメソッド ポインターを使用した継承
私が宣言した場合:
そして私はしようとします
コンパイラは私に報告します
なぜ?回避は継承します
次に、回避はスキーマです<.....>
c++ - コンパイル エラー: 未解決のオーバーロードされた関数型
g++ 4.7.2 で以下をコンパイルしようとしました。
それは私に与えます
なんで?
ありがとう。
c++ - メンバーのメンバーへのC++ポインター
メンバー ポインターの推論チェーンが内部メンバーに到達する唯一のソリューションである場合、テンプレートを使用して単一の型でこれをカプセル化できますか?
コードを gcc でコンパイルできるようになりました
みんなありがとう
c++ - ポインターとメンバー ポインターを関数ポインターに結合する
そのようなコードを検討してください:
func_ptr(...)
から MyFuncを呼び出すには、このコードをどのように完成させる必要があり*class_ptr
ますか?
可能であれば、何らかの形で aと aを a に結合しMyClass*
void (Myclass::*)(int)
void (*)(int)
たいと考えています。
std::mem_fn
そうでない場合は、 and std::function
(または他の機能的なユーティリティ)を巧妙に使用することでうまくいくと思います。
理想的には、C++11 ソリューションが必要です (egstd::mem_fun
は非推奨になっているため)。
c++ - C++、メンバー関数のアドレスを見つけるにはどうすればよいですか?
解決しようとしている特定の問題があります。クラスのメソッドの場所 (メモリ内) を見つける必要があります。メソッドへのポインタが処理されるため、構文制約にぶつかったと思いますmember pointer
例:
int (Foo::*address)(int) =
のように書くこともできます auto address =
現在、VS2008では、Foo::targetFunction
のアドレスは「0x000F B890」ですが、&Foo::targetFunction
「0x000F 1762」と表示されています
まず、メンバー ポインターは、メンバー ポインター演算子.*
およびを使用して正しく機能します->*
。targetAddress をメンバー ポインターにキャストしても、まだ機能します。
第二に、場所はサンク関数にすることができます!
最後に、VS2008 のデバッガーを使用して targetFunction の値をmember pointer
のアドレス 1762 から VS デバッガーが報告する値 B890 に変更すると、私のコードは正しく動作します!
メンバー ポインター値 (1762) の代わりにアドレス値 (B890) を取得する C++ 固有の方法はありますか?
リクエストに応じて、私が機能させようとしているコードは次のとおりです。
findLocation
from aの最初の行をmember pointer
実際のに置き換えると、function pointer
完全に機能します。ただし、いくつかのクラスメソッドに対しても読み書きする必要があります。このメソッドは奇妙なmember pointer
s によって壊れています。
また、いくつかのローカル関数が正しいアドレスを報告しないこともありました (最近)。コンパイラの動作に制約されずに関数アドレスを見つける別の方法はありますか?
c++ - メンバーへのポインターを作成できますか
メンバ ポインタを作成したいと思います。基本的に、メンバーが異なるメインクラスがあります。そのクラスのメンバーのメンバーを指すメイン クラスのメンバー ポインターを作成するにはどうすればよいですか。以下のコードが私がやろうとしていることを説明していることを願っています:
c - C で構造体内のポインター メンバーにアクセスするにはどうすればよいですか?
構造体メンバー 'al' と共用体メンバー a、c、f にアクセスするにはどうすればよいですか?
c++ - C++ のクラス メンバーのポイントについて混乱している
以下の3クラス:
出力結果は0 0 0 0 8 2
です。&Derive::var1
との結果について混乱してい&Derive::var2
ます。なぜそれらはそれぞれ と ではなく等しいの0
ですか?0
4
注: gcc4.7.1 と vs2010 でテストしています。そして、結果は同じです。