Aracılığıyla paylaş


Sendikalar

A Birliği (o nesneye bir dizi ya da bir sınıf türü olabilse), herhangi bir anda yalnızca bir nesneyi içeren üye listesinden bir kullanıcı tanımlı veri ya da sınıf türüdür.

union [tag] { member-list } [declarators];
[union] tag declarators;

Parametreler

  • tag
    UNION verilen türü adı.

  • member-list
    Union veri türlerinin listesini içerir.Notlar'a bakın.

  • declarators
    Bildiricisi liste Birliği adlarını belirtme.Daha fazla bilgi için bkz. Declarators genel bakış.

Notlar

Üye listesi bir birleşim içerebilir veri türlerini temsil eder.UNION en büyük üyesi tutacak yeterli depolama alanı gerektirir, üye listesi.Daha fazla bilgi için bakın Birliği bildirimleri (c Language Reference).

UNION bildirmek

Bir birleşim Birliği anahtar sözcüğüyle bildirimine ve üye listesi kuþak imleri içine alın:

// declaring_a_union.cpp
union DATATYPE    // Declare union type
{
    char   ch;
    int    i;
    long   l;
    float  f;
    double d;
} var1;          // Optional declaration of union variable

int main()
{
}

UNION kullanma

C++ Birliği sınırlı sınıf türü biçimidir.Bu erişim belirticileri (public, protected, özel), üye verilerini ve kurucular ve yıkıcı dahil olmak üzere, üye işlevleri içerebilir.Sanal işlevler veya statik veri üyeleri yer alamaz.Temel bir sınıf olarak kullanılamaz, ne de temel sınıflar olabilir.UNION üyelerin varsayılan erişim ortaktır.

c bir birleşim türü, yalnızca veri üyeleri içerebilir.

c, kullanmanız gereken Birliği Birliği bir değişken bildirmek için anahtar sözcük.C++, Birliği anahtar sözcüğünü gereksiz:

union DATATYPE var2;   // C declaration of a union variable
DATATYPE var3;         // C++ declaration of a union variable

Union türünde bir değişken bir değer sendikaya bildirilen her tür basılı tutabilirsiniz.Üye seçimi işlecini kullanın (.) bir sendikaya üye erişmek için:

var1.i = 6;           // Use variable as integer
var2.d = 5.327;       // Use variable as double 

Bildirmek ve aynı deyiminde UNION ifade, ayraç içine atayarak başlatılamıyor.Deyimi değerlendirilir ve Birliği ilk alana atanır.

Örnek

// using_a_union.cpp
#include <stdio.h>

union NumericType
{
    int         iValue;
    long        lValue;  
    double      dValue;  
};

int main()
{
    union NumericType Values = { 10 };   // iValue = 10
    printf_s("%d\n", Values.iValue);
    Values.dValue = 3.1416;
    printf_s("%f\n", Values.dValue);
}

Çıktı

10
3.141600

NumericType Birliği düzenlenmiş bellekte (kavramsal) aşağıdaki resimde gösterildiği gibi.

NumericType Birliği'ndeki veri depolama

Sayısal tür birleşimi veri depolaması

Ayrıca bkz.

Başvuru

Sınıflar, yapılar ve sendikalar

C++ anahtar sözcükler

Anonim sendikalar

sınıf (C++)

Yapı (C++)