跳轉到內容

C++ 程式設計

來自華夏公益教科書,開放的書籍,為了開放的世界

union 關鍵字用於定義聯合型別。

語法
    union union-name 
    {
        public-members-list;
    private:
        private-members-list;
    } object-list;

聯合類似於 struct(比 class 更類似),聯合在記憶體中共享相同位置的欄位,並且預設情況下是 public 而不是 privateunion 的大小是其最大欄位的大小(如果對齊需要,則更大,例如在 SPARC 機器上,union 包含一個 double 和一個 char [17],因此其大小可能為 24,因為它需要 64 位對齊)。聯合不能具有 destructor

這是什麼意思?聯合提供了多種檢視相同記憶體位置的方法,從而可以更有效地使用記憶體。大多數聯合的使用都被 C++ 的面向物件特性所涵蓋,因此它在 C 中更常見。但是,有時在效能很重要或當知道所討論的專案不會被擴充套件時,避免面向物件程式設計的形式主義會很方便。

     union Data {
       int i;
       char c;
     };

union 的使用在聯合部分中進行了更詳細的介紹。

華夏公益教科書