【发布时间】:2011-09-13 10:57:28
【问题描述】:
考虑:
class base
{
base();
virtual void func();
}
class derived : public base
{
derived();
void func();
void func_d();
int a;
}
main
{
base *b = new base();
sizeof(*b); // Gives 4.
derived * d = static_cast<derived*>(b);
sizeof(*d); // Gives 8- means whole derived obj size..why?
d->func_d();
}
在上面的代码中,我将指向基对象的基指针向下转换为派生类指针。我想知道派生指针如何拥有整个派生类对象。我可以调用派生类函数(仅在派生类中声明)。我在这里没有得到这个概念。
【问题讨论】:
-
请努力发布可编译的代码。
标签: c++