<目次>
(1) C++の共用体とは?構造体との違いや使用方法について
(1-1) 共用体とは?構造体との違いは?
(1-2) 共用体の定義方法、変数定義方法、初期化方法
(1-3) 共用体のサンプル
(1) C++の共用体とは?構造体との違いや使用方法について
(1-1) 共用体とは?構造体との違いは?
(1-2) 共用体の定義方法、変数定義方法、初期化方法
union 共用体名{ メンバ1; メンバ2; メンバ3; . . メンバN; } オブジェクト名;
(1-3) 共用体のサンプル
●サンプル1:メンバが同一のデータ型
メンバ変数が同一のデータ型(double)の例です。a,b,cのそれぞれに値を代入すると、他の2つも連動して変化しています(同一メモリアドレスなので、1つ書き換える=全部書き換わる)。
#include <iostream> #include <string> using namespace std; int main() { //# 共用体の定義 union sample { //# 初期化方法① //# C++では共用体定義の中で初期化可能 double a; double b; double c; }; union sample p1; p1.a = 1; cout << "================" << endl; cout << "a= " << p1.a << endl; cout << "b= " << p1.b << endl; cout << "c= " << p1.c << endl; p1.b = 3.14; cout << "================" << endl; cout << "a= " << p1.a << endl; cout << "b= " << p1.b << endl; cout << "c= " << p1.c << endl; p1.c = 10.2; cout << "================" << endl; cout << "a= " << p1.a << endl; cout << "b= " << p1.b << endl; cout << "c= " << p1.c << endl; }
(結果例)
a,b,cのいずれかを書き換えると、全ての値が書き換わる様子が確認できます。
================ a= 1 b= 1 c= 1 ================ a= 3.14 b= 3.14 c= 3.14 ================ a= 10.2 b= 10.2 c= 10.2
(図131)