2010-09-18 108 views
10

是否安全,請執行下列操作或者是未定義的行爲:分配派生類的基類

class Base 
{ 
private: 
    int a; 
}; 

class Derived : public Base 
{ 
private: 
    int b; 
}; 

Base x; 
Derived y; 
x = y; // safe? 

不要在派生類的額外的比特一下就切掉了?

回答

9

你是對的,對象被切片。這是一個common問題。你不應該這樣做!