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?
{
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?
然后因为Dog类继承自Animal 所以dog对象包含所有animal对象的东西 所以dog对象的_vfptr实际就是animal的_vfptr
--------------
求结论 对?TRUE:FLASE
然后给多的一方加分要是能指出错误 那就你的了_-