#include <stdio.h> using namespace std; class Point{ public: int x; //两个数据成员 int y; Point(int i=0, int j=0) : x(i),y(j) {} void print() { printf("x = %d\n", x); } //成员函数 }; main() { Point p1(2,4); Point p2(3,6); printf("&Point::x = %p\n", &Point::x); //输出数据成员x在Point对象中的偏移量 printf("&Point::y = %p\n", &Point::y); //输出数据成员y在Point对象中的偏移量 // 数据成员x和y的偏移量不同,说明他们的内存分配是独立的。 void (Point::*coord)() = &Point::print; //定义一个指向成员函数print的指针 (p1.*coord)(); (p2.*coord)(); // Point的对象都可以成功调用该函数指针,说明print是共享的。
}