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
「ベースから派生」キャストが間違っていることは知っています。しかし、その内部の理由は何ですか?内部の論理的な理由は何ですか?これ以上の説明なしにこれを思い出すのは難しいと思います。ありがとう!