初学者的菜问题!!!

hhsj 2002-01-12 01:28:41
请问在用NEW动态分配类对象时候,是只分配数据成员的空间吗?成员函数的空间分配吗?
...全文
120 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy_lau 2002-01-12
  • 打赏
  • 举报
回复
用new创建对象,并不给函数分配空间的,给数据成员分配空间。成员函数和静态变量一样,只属于类,而不是属于某个对象的。而数据成员(除了静态的)则是属于某个对象的。
tianyunchen 2002-01-12
  • 打赏
  • 举报
回复
数据成员空间肯定分配的,类中的成员函数放在一个公共的内存区,各个对象并不实际分配
成员函数的内存区,而是在公共的内存区调用成员函数,但我们在理解时,要认为对象既分配
了数据成员空间,又分配了成员函数的空间。















Fuxiao 2002-01-12
  • 打赏
  • 举报
回复
不分配.
晨星 2002-01-12
  • 打赏
  • 举报
回复
没有virtual函数的话,class的大小和struct一样。
告诉你一点内部机制:在语言的实现上,C++中的成员函数与C中的函数没有什么两样,只是加了一些描述他们可以操纵哪些类的对象的信息而已。而virtual函数需要动态联编,这才不得不在类中加上了一个指向虚函数的指针。
Englishgenius 2002-01-12
  • 打赏
  • 举报
回复
不分配
aauhii 2002-01-12
  • 打赏
  • 举报
回复
默认的对象空间应该是成员变量大小加上需要的若干指向虚函数表和虚基类的指针(好象是吧,记不清了)。当然还有向前退一部分的new操作需要的空间信息,effective c++对new重载部分和深度探索c++对象模型说的很透彻了。
Eric_yu 2002-01-12
  • 打赏
  • 举报
回复
当然不分配啦
poorczz 2002-01-12
  • 打赏
  • 举报
回复
分配空间时应只分数据成员的空间,因为一个类对象有一个数据成员副本,但多个同类对象共用一个成员函数副本.
  • 打赏
  • 举报
回复
有虚函数的时候不等于.
tiger_wkh52741 2002-01-12
  • 打赏
  • 举报
回复
对啊,!
数据成员不占用数据空间的啊!!
vlmf 2002-01-12
  • 打赏
  • 举报
回复
有虚函数的时候不等于.
hhsj 2002-01-12
  • 打赏
  • 举报
回复
那就是说所分配的空间不等于数据成员的空间总和了!
谢谢!!
winmain 2002-01-12
  • 打赏
  • 举报
回复
1.在使用new分配对象时,分配数据成员的空间。成员函数不需要空间所以不分配。但除了数据成员的空间外可能有附加的空间分配,如当有virtual函数存在时。

15,446

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧