菜鸟求教C++中的类中的成员变量和成员函数的疑问??

[复制链接]
查看11 | 回复5 | 2010-9-3 20:04:11 | 显示全部楼层 |阅读模式
我创建一个类,如下:
class ClassA
{

int a=1;

int b=2;

int add(int a,int b) { return (a+b) }
}
然后我 sizeof(ClassA) 得到是两个Int 的大小,即为8。
我记得老师讲过类里的成员函数,他的意思是ClassA 这个类有一个指向add函数的一个指针,那如果这样的话,在类ClassA中应该是两个int加上一个指针变量的大小,即为12才对啊,这是为什么呢?

回复

使用道具 举报

千问 | 2010-9-3 20:04:11 | 显示全部楼层
因为类的存储空间的大小事该类的数据成员的所占的存储空间,而不包括成员函数所占的存储空间,成员函数的代码所占的空间是在类外,而不是在类中
回复

使用道具 举报

千问 | 2010-9-3 20:04:11 | 显示全部楼层
第一:这个程序根本不可能通过目前的编译器编译的.第二:下面是我改过后的代码,以及编译信息#includeusing namespace std;class ClassA{ private:
int a;
int b;
public:
ClassA(int x=1,int y=
回复

使用道具 举报

千问 | 2010-9-3 20:04:11 | 显示全部楼层
这样都能编译通过吗??不过我没听说个函数还要站空间的,,,而且理论上也不需要什么指针啊,,,或许是你记错了,,,内联的直接在类里面找就可以了,,声明的,就到类的外面找呗,,编译器是强大的,,,
回复

使用道具 举报

千问 | 2010-9-3 20:04:11 | 显示全部楼层
你说的可能是它的内置指针this,这个指针实质上是一个类指针它不是类的成员变量故不应该计算其中 ,另外你的程序有点小问题return语句应加个分号
回复

使用道具 举报

千问 | 2010-9-3 20:04:11 | 显示全部楼层
函数所在的空间是代码区。。看一下C++内存管理方面的资料吧,有帮助的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行