Birlashmalar xuddi strukturalarga o’xshash toifa hisoblanadi, farqi shuki, birlashmalarda bir vaqtning o’zida faqat uning bitta elementigagina murojaat qilish mumkin. Birlashma toifasi quyidagicha aniqlanadi:
union{ 1-elementnitavsiflash; ... n-elementnitavsiflash; }; Birlashmalarning asosiy xususiyati shuki, e‟lon qilingan har bir element uchun xotiraning bitta hududi ajratiladi, ya’ni ular bir-birini qoplaydi. Bu yerda xotiraning shu qismiga istalgan element bilan murojaat qilsa bo’ladi, lekin buning uchun element shunday tanlanishi kerakki, olinadigan natija ma’noga ega bo’lishi kerak. Birlashmaning elementiga murojaat xuddi struktura elementiga murojaat kabi amalga oshiriladi. Birlashmalar qo’llaniladigan xotira obyektini initsializatsiya qilish maqsadida ishlatiladi, agarda har bir murojaat vaqtida bir qancha obyektlardan faqat bittasi faollashtirilsa.
Birlashma toifasidagi o’zgaruvchi uchun ajratiladigan xotira hajmi ushbu toifaning eng uzun elementi uchun ketadigan xotira hajmi bilan aniqlanadi. Kichik uzunlikdagi element ishlatilganda, birlashma toifasidagi o’zgaruvchi uchun ajratilgan xotira sohasining ayrim qismi ishlatilmaydi. Birlashmaning barcha elementi uchun xotiraning bitta adresdan boshlanuvchi bitta sohasi ajratiladi. Masalan:
union{ charfio[30]; char adres[80];int yoshi; int telefon; }inform;union{ intax; charal[2]; } ua; Birlashma tipidagi inform obyektini ishlatganda qiymat qabul qilgan elementnigina qayta ishlash mumkin, ya’ni masalan inform.fioelementiga qiymat berilgandan keyin boshqa elementlarga murojaat ma’noga ega emas. uabirlashmasi alelementining kichik ua.al[0]va katta ua.al[1]baytlariga alohida murojaat qilish mumkin. Birlashma tipiga oid misol ko’rib chiqamiz.
#includeusing namespacestd;intmain() { union Guruh{intn; intm; }; Guruhw; w.n=12;//w birlashmasiningn elementiga qiymatberishw.m=23;//wbirlashmasiningmelementiga qiymatberish cout<"<//buyerdawuchunajratilganjoygaoxirgimartam uchun23qiymatiyozilganisababliekranga 2323 javobichiqariladi. system("pause"); }