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