-1
我看到這個例子初始化的對象: http://www.cplusplus.com/doc/tutorial/typecasting/#dynamic_cast用不同類
(...)
class Base { virtual void dummy() {} };
class Derived: public Base { int a; };
(...)
Base * pba = new Derived;
Base * pbb = new Base;
(...)
爲什麼「PBA」爲基本對象,如果它正在與衍生初始化?爲什麼不把它作爲派生對象?
Derived * pba = new Derived; // use this instead
而且它只是一個C++的東西嗎?
這是*多態*的一個實例。你不能指望我們提供一個完全詳細的答案,因爲這是一個相當廣泛的主題(我相信這裏有一些重複)。 – Downvoter
這是dynamic_cast的一個例子。如果你寫 _derived * PBA =新的派生; _ 那麼這行沒有任何意義 _pd = dynamic_cast的(PBA); _ –
如果你同時擁有[一組貓,狗](HTTPS://en.wikipedia .org/wiki/Polymorphism_%28computer_science%29%23Subtyping),並且想讓這個集合中的所有動物發出聲音,然後你爲每個動物調用'Animal :: talk()',但這個調用會產生不同的結果,關於動物的實際分類。 – Dialecticus