// =============================================================
// =============== 構造体の考え方一例:簡潔版2 ================
// =============================================================
int main()
{
int z; // ← A) 組み込み型
//^^^^^^^^^^^^^^^^^^^ ^
struct{int a; int b;} x; // ← b) 構造を明示した無名構造体
//^^^^^^^^^^^^^^^^^^^ ^
class {int a; int b;} y; // ← C) 構造を明示した無名クラス
//^^^^^^^^^^^^^^^^^^^ ^
union {int a; int b;} w; // ← D) 構造を明示した無名共用体
//^^^^^^^^^^^^^^^^^^^ ^
/* Note:
A ... メンバー無し
B ... メンバーのデフォルトスコープが public
C ... メンバーのデフォルトスコープが private
D ... メンバーのデフォルトスコープが public
struct と class はデフォルトのスコープ以外同じ。
union だけもう少し違う。具体的にはメンバーのメモリ上での領域が
共有されている。上の例だと a に代入しても b に代入しても同じメモリ上に
格納される。 また継承機能が無い。なので仮想関数も当然無理。
また static メンバも無理。 あくまで「共有メモリ空間を作る」もの
*/
return 0;
}