2010-09-18 107 views
10

是否安全,请执行下列操作或者是未定义的行为:分配派生类的基类

class Base 
{ 
private: 
    int a; 
}; 

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

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

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

回答

9

你是对的,对象被切片。这是一个common问题。你不应该这样做!