您的位置:首页 > 编程语言 > C语言/C++

C++程序 证明类的数据成员的内存分配是独立的 ,成员函数是共享的

2013-01-17 11:23 387 查看



#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是共享的。

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐