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