- 255 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 15:48:22 ]
- >>252,>>253
共用体のメンバのうち T 型の a というメンバに値が格納されているときは U(!= T) 型の b というメンバの値は T 型の a に依存し、U 型の値としては 不正と見なされるため b を通してのアクセスは未定義の動作となる。 ではなぜ共用体が存在するのかというと、おそらく原始的なポリモーフィズムの 実現の為。 ある変数が複数通りの型(ここでは T と U とする)の値を受け入れる可能性が あるとき、構造体のような、型の異なる複数の変数を用意するのは非効率のため 単一の変数で複数の型を扱える共用体を使う。 もっとも、C++では T 型と U 型の基本クラス V 型を定義して、V 型の参照として T 型にも U 型にも(もちろん V 型にも)正規にアクセスできるので、共用体は 不要になってしまった(のだろう、たぶん)。
|

|