C++ 聯合(2)

 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、匿名聯合並非一種數據類型、由於它不用來定義變量,它只是指明若干個變量共享一片存儲單元。
相關文章
相關標籤/搜索