class Animal
{
public:
virtual void sleep() { printf("Animal sleep!"); }
};class Dog :public Animal
{
public:
virtual void sleep() { printf("Dog sleep!"); }};
int main(int argc, char* argv[])
{
         Animal animal;
Dog dog;

animal.sleep();
dog.sleep();
return 0;
}---------------
在内存里animal对象和dog对象只共用一个_vfptr
还是每个类都有一个_vfptr?

解决方案 »

  1.   

    用VC的F9设断  F5运行  好象只有animal对象(父类)才有_vfptr  
    然后因为Dog类继承自Animal  所以dog对象包含所有animal对象的东西  所以dog对象的_vfptr实际就是animal的_vfptr   
    --------------
    求结论    对?TRUE:FLASE
      

  2.   

    以回复的TRUE和FLASE多寡判断我的判断
    然后给多的一方加分要是能指出错误  那就你的了_-