2
在這裏,第二投給了一個錯誤,說動態強制轉換不適用於非多態基類嗎?
cast.cc:35:35: error: cannot dynamic_cast ‘base’ (of type ‘class CBase*’) to type ‘class CDerived*’ (source type is not polymorphic)
CBase * base = new CDerived;
CBase* pb;
CDerived * der = new CDerived;
CDerived* pd;
pb = dynamic_cast<CBase*>(der); // ok: derived-to-base
pd = dynamic_cast<CDerived*>(base); // wrong: base-to-derived
什麼是這個meannt?
爲什麼這個工作,如果我讓基類多態?
有人可以讓我知道背後的基本概念。
該編譯器替代一個的static_cast爲dynamic_cast的時候就知道這是一個派生於基轉換?這就是你所暗示的,對吧? –
@MarkRansom:我想這就是我所暗示的,但我不打算明確說明,以防萬一它錯了! –