class A
{
static int x;
};
如何使用指向成员的指针获取x
的地址?
答案 0 :(得分:5)
因为它是静态的,所以应该是这种语法:
int *px = &A::x; //x is static member
对于非静态成员,这是语法:
int A::*py = &A::y; //y is non-static member
示例:
struct A
{
static int x;
int y;
};
int A::x=100;
int main() {
int *px = &A::x;
int A::*py = &A::y;
A a;
a.y = 200;
cout << *px << endl; //used just like normal pointers
cout << a.*py << endl; //note how the pointer-to-member is used!
cout << a.y << endl; //a.*py and a.y are equivalent!
return 0;
}
输出:
100
200
200
请注意指向静态成员的指针与指向非静态成员的指针之间的区别,以及它们的使用方式!
答案 1 :(得分:0)
您可以使用&amp; A :: x 。但请记住将变量标记为公共变量,并且该类的所有实例都只有一个X.