我刚刚看到一个帖子,其中我发现了我以前从未见过的东西,简而言之就是:
class A {
public:
int _x;
};
void foo(A *a_ptr, int *m_ptr)
{
cout << (*a_ptr).*m_ptr << endl; // here
}
int main()
{
A a;
a._x = 10;
foo(&a, &A::_x); // and here
}
怎么可能做到?传入&A::_x
,然后使用(*a_ptr).*m_ptr
?
我想,&A::_x
总会引用同一个地址,但是不同的对象有不同_x
的,怎么可能呢?