class CBase { };
class CDerived: public CBase { };
CBase b;
CBase* pb;
CDerived d;
CDerived* pd;
pb = dynamic_cast<CBase*>(&d); // ok: derived-to-base
pd = dynamic_cast<CDerived*>(&b); // wrong: base-to-derived
我知道“派生的基础”演员表是错误的。但它的内在原因是什么?里面的逻辑原因是什么?我猜如果没有更多解释,很难记住这一点。谢谢你!