メンバーへのポインター (AKA ドットスターまたはアロースター) を使用してクラスメンバーにアクセスする場合、次の構文を使用できます。
A * pa;
int A::*ptm2 = &A::n;
std::cout << "pa->*ptm: " << pa->*ptm << '\n';
&A::n
私の質問は、ステートメントがどのように機能するかです。
上記の例n
では変数です。メンバー変数の代わりにn
関数があった場合 (そして、メンバーへのポインターの代わりにメンバー関数へのポインターを定義した場合)、クラスの関数は事実上静的である可能性があるため ( Nemo のコメント) を介して、クラスの関数のアドレスを見つけることができました&A::some_function
。しかし、クラス スコープの解決を通じて非静的クラス メンバーのアドレスを取得するにはどうすればよいでしょうか。&A::n
出力が単に であるため、の値を出力すると、これはさらに混乱します1
。