struct Base {
int i, j;
};
struct Derived : Base {};
、我々は次ない場合:派生クラスには余分なデータメンバーがありません。派生オブジェクトに基本オブジェクトを静的にダウンキャストしても安全ですか?上記のシナリオでは
Base b;
auto& d = static_cast<Derived&>(b);
d.i = 1;
それは未定義の動作になりますか?
注::何らかの理由で、自動生成されたGoogleのprotobufライブラリのコードを編集できません。したがって、より多くの型の& APIを提供するカスタムクラスにこれらのクラスを拡張しますが、余分なデータメンバーはありません。
@pSoLT、ありがとう。 [C++でのStatic_castを使用したダウンキャスト](http://stackoverflow.com/q/6322949/514235)それは強く関連しています。このQnでは、サイズが潜在的に同じであるかどうかを知りたいと思っています。ところで、誰かがその投稿の受け入れられた答えがこのQnにも対応していると感じたら、誰かが簡単な言葉で説明することができれば素晴らしいだろう。私はちょうど標準からその通路を読んでいる間に失われた。 :-) – iammilind