class B
{ void funC() {}; };
sizeof( B ) = 1 // 成员函数不占内存空间?
class C
{ virtual void funC() {}; };
sizeof( C ) = 4 // 如果说4是虚表指针,那么前面2种情况中的那1个字节到哪里去了?
请高手详细解释下,谢谢
...全文
22117打赏收藏
跪求:类所占内存大小的问题
class A{}; sizeof( A ) = 1 // 1代表什么? class B { void funC() {}; }; sizeof( B ) = 1 // 成员函数不占内存空间? class C { virtual void funC() {}; }; sizeof( C ) = 4 // 如果说4是虚表指针,那么前面2种情况中的那1个字节到哪里去了? 请高手详细解释下,谢谢
class A{};
sizeof( A ) = 1 // 1代表什么?
=======================
确保 A a,b; //编译器添加的1BYTE
if(&a == &b)能有正确结果
class B
{ void funC() {}; };
sizeof( B ) = 1 // 成员函数不占内存空间?
========================
类的成员函数将会呗编译器放到 class object之外,class object的大小值是 class 的非静态成员变量的大小+编译器放在编译器内的东东的大小
class C
{ virtual void funC() {}; };
sizeof( C ) = 4 // 如果说4是虚表指针,那么前面2种情况中的那1个字节到哪里去了?
===============================================================
确实是虚表指针,为什么要1BYTE??