ポリモーフィズムについて学ぶとき、あなたは一般的にこのようなものを見ます
class Base { int prv_member; virtual void fn(){} }
class Derived : Base { int more_data; virtual void fn(){} }
アップキャストまたはダウンキャストとは何ですか?ある(Derived*)base_ptr;
アップキャストまたはダウンキャストは?
あなたは基地から離れてより具体的な何かに行くので、私はそれをアップキャストと呼びます。他の人々は、あなたが階層を下って、トップがルートである特定のものに行くので、それはダウンキャストであると私に言った。しかし、他の人々は私がそれを呼ぶものと呼ぶようです。
ベースptrを派生ptrに変換するとき、アップキャストまたはダウンキャストと呼ばれますか?そして、誰かが公式の情報源にリンクできるか、それがなぜそれを素晴らしいと呼んだのかを説明できるなら。
virtual
は不要ですが、「痛い」ことはありません。その文脈で使用すべきでないと考える理由を詳しく説明していただけますか?