と呼ばれる基本クラスと、などbase
と呼ばれる派生クラスを作成する場合、基本クラスのインスタンスのコレクションを使用します。要素を取得して使用しようとすると、C++はそのタイプがベースクラスの、おそらくベースのから取得したためです。これは、このオブジェクトがベクターに入れられたときにこのオブジェクトが存在することを知っていた、特定の派生クラスにのみ存在する機能を使用したい場合の問題です。derived_1
derived_2
std::vector
そこで、要素を想定されているタイプにキャストしましたが、これは機能しないことがわかりました。
(derived_3)obj_to_be_fixed;
そして、それはポインタのことであることを思い出しました。いくつかの調整の後、これは今うまくいきました。
*((derived_3*)&obj_to_be_fixed);
これは正しいですか、それとも、たとえば、abc_cast()
より少ない混乱でそれを行う機能がありますか?
編集:
私はこれを別の質問に拡張する必要がありました。完全な解決策がそこに示されています。stackoverflow.com...なぜポリモーフィックタイプのエラーとクリーンアップの質問