class Test{
public:
int a, b, c;
Test(int i){
a = i;
b = c = 0;
}
~Test(){
a = b = c = 0;
}
};
int Test::*v[] = {&Test::a, &Test::b, &Test::c};
void f(Test *a, int Test::*b, int c){
a->*b = c;
}
int main(){
// 输出结果为 1
cout << &Test::c << endl;
}
考研刷题时碰到的一道题中的一部分代码,我知道 Test::是类的作用域,但是这个&Test::c
是个什么东西,还有这个int Test::*v[] = {&Test::a, &Test::b, &Test::c}
又是一个什么神奇的数组,翻了半天书也没看出个所以然,上网查也不知道用什么关键词,有没有懂的大佬能帮我一下。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.