Contoh Persatuan C++

Contoh Persatuan C



Gabungan adalah tipe kelas khusus dalam C++ yang memungkinkan penyimpanan tipe data berbeda di lokasi memori bersama. Berbeda dengan struktur, di mana setiap bagian biasanya mendapatkan memorinya, gabungan membiarkan bagian data yang berbeda menggunakan lokasi memori yang sama. Karakteristik ini membuat serikat pekerja sangat berguna ketika efisiensi memori merupakan prioritas, dan hanya satu anggota yang perlu diakses pada satu waktu. Pada artikel ini, kita akan mempelajari konsep serikat pekerja di C++ dan mengeksplorasi beberapa contoh yang menunjukkan kegunaannya dalam berbagai skenario.

Sintaksis:

Gabungan adalah tipe yang ditentukan oleh pengguna, memungkinkan penyimpanan beragam tipe data dalam lokasi memori bersama. Penggunaan gabungan mengikuti sintaksis yang identik dengan struct.







Sintaks dasarnya adalah sebagai berikut:



Persatuan Nama Serikat {

// Deklarasi anggota

DataType1 anggota1 ;

DataType2 anggota2 ;

//...

} ;

Di sini, “UnionName” berfungsi sebagai pengidentifikasi untuk gabungan yang memberikan nama unik untuk mereferensikan tipe spesifik yang ditentukan pengguna ini. Tipe data anggota serikat dinotasikan sebagai “DataType1”, “DataType2”, dan seterusnya. Tipe data ini menandakan beragam jenis informasi yang dapat disimpan dalam gabungan. Setiap anggota dalam serikat, yang ditunjuk dengan nama seperti “anggota1”, “anggota2”, dll., mewakili bagian data yang berbeda.



Kami sekarang memahami sintaks dasar. Sekarang mari kita gunakan beberapa contoh untuk lebih memahami hal ini.





Contoh 1: Penggunaan Serikat Dasar

Contoh pertama mengilustrasikan pemanfaatan dasar gabungan di C++, menunjukkan bagaimana gabungan memungkinkan pembagian ruang memori di antara tipe data berbeda dalam satu struktur.

Berikut ini contohnya:



#termasuk

menggunakan namespace std ;

Persatuan ArrayUnion {

ke dalam intArray [ 5 ] ;

mengambang floatArray [ 5 ] ;

} ;

ke dalam utama ( ) {

ArrayUnion arrayUnion ;

untuk ( ke dalam Saya = 0 ; Saya < 5 ; ++ Saya ) {

arrayUnion. intArray [ Saya ] = Saya * 2 ;

}

cout << 'Array Int:' ;

untuk ( ke dalam Saya = 0 ; Saya < 5 ; ++ Saya ) {

cout << ' ' << arrayUnion. intArray [ Saya ] ;

}

cout << akhir ;

untuk ( ke dalam Saya = 0 ; Saya < 5 ; ++ Saya ) {

arrayUnion. floatArray [ Saya ] = Saya * 1.5f ;

}

cout << 'Array Mengambang:' ;

untuk ( ke dalam Saya = 0 ; Saya < 5 ; ++ Saya ) {

cout << ' ' << arrayUnion. floatArray [ Saya ] ;

}

cout << akhir ;

kembali 0 ;

}

Dalam cuplikan kode C++ ini, kami menggunakan gabungan bernama “MyUnion” yang menggabungkan tiga anggota data berbeda: bilangan bulat (intValue), bilangan floating-point (floatValue), dan karakter (charValue). Hanya satu dari anggota ini yang dapat aktif pada suatu waktu tertentu karena kemampuan serikat pekerja untuk berbagi ruang memori.

Dalam fungsi “utama”, kami mendeklarasikan turunan dari gabungan yaitu “myUnion”. Pertama, kita menetapkan nilai anggota integer menjadi 42 dan menggunakan “cout” untuk mencetaknya. Selanjutnya, kami menetapkan nilai floating-point 3,14 ke anggota “floatValue” dan mencetaknya. Terakhir, kami menetapkan karakter “A” ke anggota “charValue” dan mencetaknya. Penting untuk diingat bahwa karena semua anggota serikat berbagi lokasi memori yang sama, mengubah satu anggota mungkin berdampak pada nilai-nilai anggota lainnya. Kode diakhiri dengan mengembalikan 0 yang menandakan eksekusi berhasil.

Contoh 2: Penyatuan dengan Struct

Struct adalah tipe data dalam C++ yang dapat dibuat pengguna untuk menggabungkan variabel dari berbagai tipe di bawah satu nama terpadu. Menggabungkan gabungan dengan struct dapat berguna ketika kita ingin membuat struktur data yang dapat menampung berbagai tipe data, dan setiap tipe dikaitkan dengan bidang tertentu. Pasangan ini memungkinkan pengembangan struktur data kompleks yang menampilkan beragam representasi.

Berikut ini contoh penggunaan gabungan dalam sebuah struct di C++:

#termasuk

menggunakan namespace std ;

struktur Titik {

ke dalam s1 ;

ke dalam s2 ;

} ;

Persatuan Membentuk {

ke dalam sisi ;

mengambang radius ;

Pusat titik ;

} ;

ke dalam utama ( ) {

Bentuk bentuk ;

membentuk. sisi = 5 ;
cout << 'Sisi: ' << membentuk. sisi << akhir ;

membentuk. radius = 6.0f ;
cout << 'Radius:' << membentuk. radius << akhir ;

membentuk. tengah = { 10 , dua puluh } ;
cout << 'Tengah: (' << membentuk. tengah . s1 << ', ' << membentuk. tengah . s2 << ')' << akhir ;

kembali 0 ;

}

Dalam kode ini, kita mendefinisikan program C++ yang menggunakan gabungan dan struct untuk mewakili berbagai aspek bentuk geometris. Pertama, kita mendeklarasikan struktur “Titik” yang terdiri dari dua anggota bilangan bulat, “s1” dan “s2”, yang mewakili koordinat suatu titik dalam ruang 2D. Kemudian, kita mendefinisikan “union” bernama “Shape” yang terdiri dari tiga anggota: integer “sides”, floating-point “radius”, dan struct “Point” bernama “center”. Pindah ke fungsi 'utama', kita membuat instance objek 'Bentuk' yang diberi nama 'bentuk'. Kami kemudian menunjukkan keserbagunaan serikat pekerja dengan memberikan nilai-nilai kepada anggotanya yang berbeda-beda. Awalnya kita atur jumlah sisinya menjadi 5 dan cetak hasilnya. Selanjutnya, kita menetapkan radius 6,0 pada bentuk dan menampilkan radiusnya. Terakhir, kita tetapkan titik pusat dengan koordinat (10, 20) pada bentuk dan cetak koordinat pusatnya.

Contoh 3: Gabungan dengan Enum

Dalam C++, enumerasi, biasa disebut enum, bertujuan untuk mendefinisikan kumpulan konstanta integral bernama. Menggabungkan enum dengan gabungan dapat berguna dalam skenario di mana kita ingin merepresentasikan variabel yang dapat memiliki tipe berbeda, masing-masing dikaitkan dengan nilai enum tertentu.

Berikut ini contohnya:

#termasuk

menggunakan namespace std ;

enum Tipe data {

BILANGAN BULAT ,

MENGAMBANG ,

ARANG

} ;

Persatuan Nilai Data {

ke dalam nilai int ;

mengambang nilai float ;

arang nilai karakter ;

} ;

struktur Data {

Tipe Tipe Data ;

nilai DataValue ;

} ;

ke dalam utama ( )

{

Data data1 , data2 , data3 ;

data1. jenis = BILANGAN BULAT ;
data1. nilai . nilai int = 42 ;

data2. jenis = MENGAMBANG ;
data2. nilai . nilai float = 3.14f ;

data3. jenis = ARANG ;
data3. nilai . nilai karakter = 'A' ;

cout << 'Data 1:' << data1. nilai . nilai int << akhir ;
cout << 'Data 2:' << data2. nilai . nilai float << akhir ;
cout << 'Data 3:' << data3. nilai . nilai karakter << akhir ;

kembali 0 ;

}

Untuk contoh ini, kami memiliki program yang menggunakan enum, gabungan, dan struct untuk membuat struktur data fleksibel yang mampu menampung berbagai jenis nilai. Enum “DataType” didefinisikan untuk mewakili tiga tipe data dasar: INTEGER, FLOAT, dan CHAR. Enum meningkatkan keterbacaan dan pemeliharaan kode dengan menawarkan serangkaian konstanta integral bernama.

Kemudian, kita membuat gabungan yang disebut “DataValue” dengan tiga anggota: “charValue” bertipe char, “floatValue” bertipe float, dan “intValue” bertipe int. Dengan gabungan, anggota-anggota ini berbagi lokasi memori yang sama yang memungkinkan gabungan tersebut mengakomodasi nilai-nilai dari tipe yang berbeda secara bergantian. Struktur “Data” kemudian dibuat yang terdiri dari dua anggota: enumerator “DataType” bernama “type” dan gabungan “DataValue” bernama “value”. Struct ini memungkinkan kita untuk mengasosiasikan tipe data dengan nilai yang sesuai, memberikan representasi terstruktur.

Dalam fungsi “main”, kita membuat instance tiga instance dari struct “Data”: “data1”, “data2”, dan “data3”. Kami memberikan nilai pada instance ini dengan menentukan tipe data dan menetapkan nilai yang sesuai dalam gabungan. Misalnya, “data1” diberikan dengan tipe INTEGER dengan nilai 42. Terakhir, kita menggunakan pernyataan “cout” untuk mencetak nilai yang disimpan di setiap instance “Data”. Program mengeluarkan nilai integer “data1”, nilai floating-point “data2”, dan nilai karakter “data3”.

Contoh ini mengilustrasikan bagaimana menggabungkan enum, gabungan, dan struct dapat digunakan untuk membuat representasi data yang serbaguna dan aman untuk tipe di C++.

Kesimpulan

Gabungan C++ menyediakan mekanisme yang kuat dan fleksibel untuk mengelola beragam tipe data dalam satu ruang memori. Contoh-contoh yang diilustrasikan dalam artikel ini menyoroti kemampuan adaptasi dan efektivitas serikat pekerja dalam mengatasi berbagai skenario. Dari penggunaan mendasar yang menunjukkan pertukaran tipe data hingga aplikasi yang lebih kompleks yang melibatkan struktur dan enum, contoh-contoh ini menggarisbawahi efisiensi dan kemampuan beradaptasi yang dibawa oleh gabungan ke pemrograman C++.