一个类只声明,但是没有实例化,会占用空间吗?成员函数是否分配空间?
我明白,对象在实例化时分配空间,但是成员函数并不占对象的空间呀。是所有对象共有的呀。
所以我如果仅仅声明了类,但是没有实例化,会为这个类分配空间吗?即会为这个类的成员函数分配内存吗?
在哪里分配呢?
我明白,对象在实例化时分配空间,但是成员函数并不占对象的空间呀。是所有对象共有的呀。
所以我如果仅仅声明了类,但是没有实例化,会为这个类分配空间吗?即会为这个类的成员函数分配内存吗?
在哪里分配呢?
解决方案 »
- 如何用windbg+vs2008检测并定位服务内存泄露
- 驱动开发里面startIO都完成些什么工作呀?其主要用途是什么呀?
- 小小问一声,在这里灌水合法不?
- 做了一个下拉式菜单,当你点击菜单中的命令时候,为什么屏幕要闪一下才能执行命令?谢谢
- 创建一个新进程后用HOOK失效。
- 一个单击选择区域的问题
- 怎样用VC进行图像数据(二进制大对象)存储数据库
- 对ArcObject里有点了解的,小弟想讨论一下里面的COM对象
- CMSCOM控件的效率怎么样?,能够对多少串口进行操作?
- 拜托大家能否帮我解决一下DIB压缩问题?
- 高手来:WNetOpenEnum 返回The network path was not found的奇怪问题讨论
- 关于子窗口显示的问题
不会
具体的看inside c++ object model
非虚的成员函数实际也就是个带作用域的函数,跟普通函数也没本质区别,就是有个this指针的操作。
虚函数比非虚的多一点的是:它还有个指针放在虚表里,这个类的所有实例共享同一个虚表,虚表也是占空间的。不用的函数一般会被编译器干掉的,比如说在build release版本的时候,会提示某个函数没用到,被干掉了(要警告全开才能看到)。
同理用不到的变量、成员函数,甚至虚表都会被优化掉(比如这个类根本没被用到过)。现在的编译器还是很NB的。很多问题还是交给编译器考虑吧。