構造体
読み:こうぞうたい
外語:structure
C/C++で、複数の変数を一まとめにしたもの。
概要
structで定義する。
同じような用途に使う変数を一つにまとめ、整理するのに用いることができる。
実際に内容を参照する場合は、構造体名.変数名、とする。
特徴
メンバー関数
C++ではCより機能が拡張され、メンバー関数を含むことが可能となった。
そのため、構造体は実質的にクラスと同等の機能を持ってしまうことになった。
元々クラスと構造体は概念の異なるもので、C++設計時点で、「似ているからついでに」拡張し、構造体がメンバー関数を持てるようにしてしまった言語設計自体が間違いだったと言える。
しかし構造体にメンバー関数があっても不利益がないという考え方もあり、クラスを使うか構造体を使うかはプログラマーの好みの問題となる。
匿名構造体
Cの標準仕様ではstructに名前は必須だが、C++の場合は、必ずしも名前は必要ではない。
C++では、構造体や共用体を別の構造体や共用体に埋め込む場合に限り、その内部の構造体や共用体に名前を付ける必要がない。またこの場合、参照する際にも構造体や共用体の名前を付けなくても内容にアクセスすることができる。
このような構造体を、無名構造体や匿名構造体という。
再検索