2014-08-30 121 views

回答

1

也沒有。但它的不是正常或良好的做法。

會發生什麼是派生類被「切片」到成爲基類的一個對象。

當您將派生對象的指針/引用分配給指向基礎的指針/引用時,常見的是什麼。 構成了C++運行時多態性的基礎。

1

可以強制編譯器來觸發一個錯誤,當遇到這樣的分配:

class Derived; 

class Base 
{ 
public: 
    Base() = default; 

    Base(const Derived &d) = delete; 
    Base& operator=(const Derived& other) = delete; 
}; 

class Derived : public Base 
{ 
}; 

int main() 
{ 
    Derived d; 
    Base b = d; 
} 

Live demo link.

相關問題