6.3w+
社区成员
#include <iostream>
#include <stdio.h>
using namespace std;
class MyClass
{
public:
MyClass()
{
a = b = c = 0;
}
int a;
int b;
int c;
void Display()
{
cout << a << endl << b << endl << c << endl;
}
};
int main()
{
int MyClass::* pMCa = &MyClass::a;
int MyClass::* pMCb = &MyClass::b;
int MyClass::* pMCc = &MyClass::c;
MyClass m_MC;
m_MC.a = 100;
m_MC.b = 101;
m_MC.c = 102;
cout << pMCa << endl << pMCb << endl <<pMCc << endl;
printf("%p\n",pMCa);
printf("%p\n",pMCb);
printf("%p\n",pMCc);
cout << m_MC.*pMCa << endl << m_MC.*pMCb << endl << m_MC.*pMCc << endl;
return 0;
}
/*运行结果:
1
1
1
00000000
00000004
00000008
1
2
3
press any key to continue
*/
cout << offsetof(MyClass, a) << endl
<< offsetof(MyClass, b) << endl
<< offsetof(MyClass, c) << endl;
cout << (*(int*)&pMCa) << endl << (*(int*)&pMCb) << endl <<(*(int*)&pMCc) << endl;
cout << (*(int*)&pMCa) << endl << (*(int*)&pMCb) << endl <<(*(int*)&pMCc) << endl;