10
是否安全,请执行下列操作或者是未定义的行为:分配派生类的基类
class Base
{
private:
int a;
};
class Derived : public Base
{
private:
int b;
};
Base x;
Derived y;
x = y; // safe?
不要在派生类的额外的比特一下就切掉了?
是否安全,请执行下列操作或者是未定义的行为:分配派生类的基类
class Base
{
private:
int a;
};
class Derived : public Base
{
private:
int b;
};
Base x;
Derived y;
x = y; // safe?
不要在派生类的额外的比特一下就切掉了?
你是对的,对象被切片。这是一个common问题。你不应该这样做!
是的,切片发生。这不是未定义的行为。
您可能会发现在C++此条 - 常见问题有所帮助:
http://www.parashift.com/c++-faq-lite/virtual-functions.html#faq-20.8
谢谢你的链接。 – links77 2010-09-18 20:16:20