class A {
public:
int a;
int b;
};
int main()
{
int A::* p = &A::a; // Aのint型メンバへのメンバポインタpの宣言 cout << p << endl; p = &A::b; // Aのメンバaの相対アドレスを代入 cout << p << endl; cin.get();
}
http://thales.philos.k.hosei.ac.jp/c++/section4-5.html
上記のサイトを見て非静的メンバ変数もアドレスを保持していると知りました。
その内部のアドレスを見るためにいろいろやってみたのですがうまくいきません
また int p = new int() = cout << p 結果 アドレス なのに対して
int A:: p = &A::a; = cout << p 1 になります
&をつけるとアドレスが出ますが1なのがそもそも謎です。また
アドレスは出ますが、int A::* p = &A::a;
int A::* p = &A::b; 変数の場所は違うはずなのに同じアドレスが出てきます。
以上2点どうしても謎がとけないとで力を貸していただけると幸いです
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。