gpt4 book ai didi

c++ - 指向静态类成员

转载 作者:行者123 更新时间:2023-11-30 01:29:46 24 4
gpt4 key购买 nike

class A
{
static int x;
};

如何使用指向成员的指针获取 x 的地址?

最佳答案

因为它是静态的,所以应该是这样的语法:

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

演示:http://ideone.com/0xSdW

注意指向静态成员的指针和指向非静态成员的指针之间的区别,以及它们的使用方式!

关于c++ - 指向静态类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5362445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com