オブジェクトを基底型にキャストしてstd :: mapに格納し、それを元に戻して派生型にリキャストすると、正しい派生クラスメンバのデータですか?派生から基底へのオブジェクトと背面へのキャスト
私は特定の種類のキャストを行う必要がありますか?
オブジェクトを基底型にキャストしてstd :: mapに格納し、それを元に戻して派生型にリキャストすると、正しい派生クラスメンバのデータですか?派生から基底へのオブジェクトと背面へのキャスト
私は特定の種類のキャストを行う必要がありますか?
オブジェクトへのポインタをキャストしている場合でも、ポインタは同じオブジェクトを指しているので問題ありません。
実際のオブジェクトをキャストしている場合、サブクラスのすべての情報はスーパークラスに変換されると失われます。したがって、キャストするとその情報は復元されません。
sepp2kさんの回答は、データの保存方法をカバーしています。キャストの場合、 'static_cast'と' dynamic_cast'は通常のCスタイルキャストと同様に利用できます。 – Firedragon
ダウンキャスティングはコードの匂いであることが多いことに注意してください。 –