#include <iostream>
#include <stdio.h>
using namespace std;
class Member {
public:
Member():x(1),y(2),z(3){}
virtual ~Member(){}
float x,y,z;
};
int main( int argc, char *argv[])
{
Member m;
cout << "size:"<< sizeof(Member)<<endl;
printf("m:%p\n" , &m);
printf("x:%d %p\n" , &Member::x, &m.x);
printf("y:%d %p\n" , &Member::y, &m.y);
printf("z:%d %p\n" , &Member::z, &m.z);
float Member::* mmm = &Member::x;
printf("%f\n", m.*mmm);
return 0;
}
result:
size:24
m:0x7fffa2cc1740
x:8 0x7fffa2cc1748
y:12 0x7fffa2cc174c
z:16 0x7fffa2cc1750
1.000000