谭浩强C++上说:类并不是一个实体,而是一个抽象类型,并不占据存储空间。可是我写了一个程序

#include<iostream>using namespace std;int main(){ class Time { public: int hour; int minute; int sec; }; cout<<sizeof(Time)<<endl; return 0;}
运行结果是12,明明就是占了空间的啊,求赐教,谢谢大神

sizeof计算的是Time类的对象的大小,就像sizeof(int),计算的是一个int类型的变量的大小,并没有创建变量,所以不用分配空间。原话说的别扭了,其实他要说类不是对象,只是类型。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-27
你这不要纠结,是你自己理解错了,类的对象的数据成员是占据存储空间的,但是类的成员函数是不占据存储空间的。谭浩强是这样讲的:“一个对象所占的空间大小只取决于该对象中数据成员所占的空间,而与成员函数无关。函数代码是存储在对象空间之外的”
第2个回答  2012-06-27
那你试试sizeof(int)看是什么情况?:D
相似回答
大家正在搜