1 #include<iostream> 2 using namespace std; 3 class someClass{ 4 int num; 5 public: 6 void show(){ 7 cout<<num<<endl; 8 } 9 }; 10 union A{ 11 char c; 12 int i; 13 double d; 14 someClass s; 15 }; 16 union B{ 17 char c; 18 int i; 19 double d; 20 B(){ 21 d = 8.9; 22 } 23 }; 24 union{ 25 char c; 26 int i; 27 double d; 28 void show(){ 29 cout<<c<<endl; 30 } 31 }u={'U'}; 32 33 int main(){ 34 A a = {'A'}; 35 B b ; 36 37 cout<<a.c<<endl; //輸出A 38 cout<<b.d<<endl;//輸出8.9 39 a.s.show();//輸出65,就是A 40 u.show();//輸出U 41 42 union{ //匿名聯合 43 int p; 44 int q; 45 }; 46 p = 3; 47 cout<<q<<endl;//輸出3 48 } 49 1、union能夠指定成員的訪問權限,默認狀況是public 50 2、union也能夠定義成員函數,包括構造函數和析構函數,可是,它不能做爲基類使用,成員函數不能爲虛函數。 51 3、union容許其餘類的對象成爲它的數據成員,可是要求該對象的所屬類不能定義構造函數、析構函數或者賦值操做符函數。 52 4、匿名聯合並非一種數據類型、由於它不用來定義變量,它只是指明若干個變量共享一片存儲單元。