其实在现在的C++编译其中,struct和class并没有太多的不同,即使在内存分配上。用struct或class取决于你看那个关键字顺眼。类对象中包含所有非static变量、字符边界对齐、虚拟函数、继承和内联函数(inline)的内存开销,基类和成员函数都分配在类对象之外。如virtual function,则建立vptr(在class object类)和vtable,其类用的是bptr指向base class pointers table.

解决方案 »

  1.   

    不仅有必要,而且很有必要!
    如果你想深入学习OOP,如果你想研究COM。
    推荐《深度探索C++对象模型》
      

  2.   

    声明虚函数还要占内存的!而且,编译器会在每个对象上加一个this指针,每个成员(友元)函数的参数中加this指针,和C中的struct大大的不同,但C++中struct与C中已有本质的改变,和class差不多了!
      

  3.   

    你可以用VC的variable窗口看一下吗!打开+号
    一般是vptable指针然后是成员变量.