如何理解“int x:: *v[] = { &x::a,&x::b,&x::c };”
以及func()方法的底层逻辑?
#include <iostream>
using namespace std;
class x
{
public:
int a, b, c;
x() { a = b = c = 0; };
x(int i) { a = i; b = c = 0; };
};
int x:: *v[] = { &x::a,&x::b,&x::c };
void func(x *a, int x:: *b, int c) {
a->*b = c;
}
int main() {
x a(1), b(304);
x *c = new x(-13);
f(&a, v[0], 3);
f(&b, v[1], 2);
f(c, v[2], 1);
cout << a.a << " " << b.b << "" << c->c;
return 0;
}