Apa itu Struct di C ++?
Sebuah STRUCT adalah C ++ struktur data yang dapat digunakan untuk menyimpan bersama-sama elemen tipe data yang berbeda. Di C ++, struktur adalah tipe data yang ditentukan pengguna. Struktur membuat tipe data untuk mengelompokkan item dari tipe data yang berbeda di bawah tipe data tunggal.
Sebagai contoh:
Misalkan Anda perlu menyimpan informasi tentang seseorang, nama, kewarganegaraan, dan usianya. Anda dapat membuat variabel seperti nama, kewarganegaraan, dan usia untuk menyimpan data secara terpisah.
Namun, Anda mungkin perlu menyimpan informasi tentang banyak orang di masa mendatang. Artinya variabel untuk individu yang berbeda akan dibuat. Misalnya nama1, kewarganegaraan1, usia1 dll. Untuk menghindari hal ini, sebaiknya buat sebuah struct.
Dalam tutorial C ++ ini, Anda akan mempelajari:
- Apa itu Struct di C ++?
- Kapan menggunakan Structure?
- C ++ Struct Initialization
- Membuat Contoh Struct
- Mengakses Anggota Struct
- Petunjuk ke Struktur
- Struct as Function Argument
- Batasan struktur C ++
Kapan menggunakan Structure?
Berikut beberapa alasan menggunakan struktur di C ++.
- Gunakan struct saat Anda perlu menyimpan elemen dari tipe data yang berbeda di bawah satu tipe data.
- C ++ struct adalah tipe nilai dan bukan tipe referensi. Gunakan struct jika Anda tidak bermaksud untuk mengubah data Anda setelah pembuatan.
C ++ Struct Initialization
Untuk membuat struktur C ++, kami menggunakan kata kunci struct, diikuti dengan pengenal. Pengidentifikasi menjadi nama struct. Berikut adalah sintaks untuk pembuatan struct C ++:
Sintaksis:
struct struct_name{// struct members}
Dalam sintaks di atas, kami telah menggunakan kata kunci struct. Nama_struktur adalah nama struktur.
Anggota struct ditambahkan dalam tanda kurung kurawal. Anggota ini mungkin termasuk tipe data yang berbeda.
Sebagai contoh:
struct Person{char name[30];int citizenship;int age;}
Dalam contoh di atas, Orang adalah struktur dengan tiga anggota. Anggota termasuk nama, kewarganegaraan, dan usia. Satu anggota adalah tipe data char, sedangkan 2 sisanya adalah bilangan bulat ketika struktur dibuat, memori tidak dialokasikan. Memori hanya dialokasikan setelah variabel ditambahkan ke struct.
Membuat Contoh Struct
Dalam contoh di atas, kami telah membuat sebuah struct bernama Person. Kita dapat membuat variabel struct sebagai berikut:
Person p;
P adalah variabel struct tipe Orang. Kita dapat menggunakan variabel ini untuk mengakses anggota struct.
Mengakses Anggota Struct
Untuk mengakses anggota struct, kami menggunakan instance dari struct dan operator titik (.). Misalnya, untuk mengakses usia anggota struct Person:
p.age = 27;
Kami telah mengakses usia anggota dari orang struct menggunakan contoh struct, p. Kami kemudian telah menetapkan nilai usia anggota menjadi 27.
Contoh 1:
#includeusing namespace std;struct Person{int citizenship;int age;};int main(void) {struct Person p;p.citizenship = 1;p.age = 27;cout << "Person citizenship: " << p.citizenship << endl;cout << "Person age: " << p.age << endl;return 0;}
Keluaran:
Berikut tangkapan layar kodenya:
Penjelasan Kode:
- Sertakan file header iostream dalam program kami untuk menggunakan fungsi yang ditentukan di dalamnya.
- Sertakan namespace std untuk menggunakan kelasnya tanpa memanggilnya.
- Buat sebuah struct bernama Person.
- Awal dari tubuh struct.
- Buat anggota struct bernama kewarganegaraan tipe integer.
- Buat anggota struct bernama age of type integer.
- Akhir dari tubuh struct.
- Panggil fungsi main (). Logika program harus ditambahkan di dalam tubuh fungsi ini.
- Buat instance dari Orang struct dan beri nama p.
- Setel nilai kewarganegaraan anggota struct menjadi 1.
- Setel nilai usia anggota struct menjadi 27.
- Cetak nilai kewarganegaraan anggota struct di konsol bersama beberapa teks lainnya.
- Cetak nilai usia anggota struct di konsol bersama beberapa teks lainnya.
- Program harus mengembalikan nilai jika berhasil dijalankan.
- Akhir dari fungsi main ().
Petunjuk ke Struktur
Dimungkinkan untuk membuat penunjuk yang menunjuk ke struktur. Ini mirip dengan bagaimana pointer yang menunjuk ke tipe data asli seperti int, float, double, dll. Dibuat. Perhatikan bahwa penunjuk di C ++ akan menyimpan lokasi memori.
Contoh 2:
#includeusing namespace std;struct Length{int meters;float centimeters;};int main(){Length *ptr, l;ptr = &l;cout << "Enter meters: ";cin >> (*ptr).meters;cout << "Enter centimeters: ";cin >> (*ptr).centimeters;cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";return 0;}
Keluaran:
Berikut tangkapan layar kodenya:
Penjelasan Kode:
- Sertakan file header iostream dalam program kami untuk menggunakan fungsinya.
- Sertakan namespace std dalam program kita untuk menggunakan kelasnya tanpa memanggilnya.
- Buat sebuah struct bernama Length.
- Mulai dari tubuh Panjang struct.
- Buat anggota struct bernama meter tipe data integer.
- Buat anggota struct bernama sentimeter tipe integer.
- Akhir tubuh Panjang struct.
- Panggil fungsi main ().
- Mulai dari isi fungsi main ().
- Buat variabel penunjuk * ptr dan variabel normal l dengan tipe Panjang.
- Simpan alamat variabel l di variabel penunjuk kami.
- Tampilkan pesan di konsol, meminta pengguna memasukkan nilai untuk pengukur variabel.
- Baca nilai yang dimasukkan oleh pengguna melalui keyboard. Pengukur fungsi anggota di sini diakses menggunakan variabel penunjuk.
- Tampilkan pesan di konsol, meminta pengguna untuk memasukkan nilai sentimeter variabel.
- Baca nilai yang dimasukkan oleh pengguna melalui keyboard. Sentimeter fungsi anggota di sini diakses menggunakan variabel pointer.
- Menampilkan nilai yang dibaca dari pengguna di konsol bersama beberapa teks lainnya.
- Program harus mengembalikan nilai setelah eksekusi berhasil.
- Akhir badan fungsi main ().
Struct as Function Argument
Anda bisa meneruskan struct ke fungsi sebagai argumen. Ini dilakukan dengan cara yang sama seperti meneruskan argumen biasa. Variabel struct juga dapat diteruskan ke suatu fungsi. Contoh yang baik adalah ketika Anda perlu menampilkan nilai anggota struct. Mari kita tunjukkan ini:
Contoh 3:
#includeusing namespace std;struct Person{int citizenship;int age;};void func(struct Person p);int main(){struct Person p;p.citizenship = 1;p.age = 27;func(p);return 0;}void func(struct Person p){cout << " Person citizenship: " << p.citizenship< Keluaran:
Berikut tangkapan layar kodenya:
Penjelasan Kode:
- Sertakan file header iostream ke dalam file kami. Kami kemudian akan menggunakan fungsinya tanpa kesalahan.
- Sertakan namespace std dalam program kami untuk menggunakan kelasnya. Kita tidak perlu memanggil namespace untuk menggunakan kelasnya.
- Buat sebuah struct bernama Person.
- Mulai dari tubuh Orang struct.
- Buat anggota struct Person. Anggota bernama kewarganegaraan dan bertipe integer.
- Buat anggota struct Person. Anggota diberi nama umur dan bertipe integer.
- Akhir dari tubuh struct Person.
- Buat fungsi yang mengambil contoh dari struct Person, p, sebagai argumennya.
- Panggil fungsi utama. Fungsi {menandai awal dari isi main ().
- Buat sebuah instance dari struct Person dan beri nama p.
- Akses kewarganegaraan variabel anggota struct menggunakan contoh dari struct, p, dan memberikan nilai 1.
- Akses usia variabel anggota struct menggunakan contoh dari struct, p, dan menetapkan nilai 27.
- Panggil fungsi tersebut dan berikan instance dari struct Person, p, sebagai argumennya.
- Fungsi tersebut harus mengembalikan nilai setelah eksekusi berhasil.
- Akhir badan fungsi main ().
- Buat tubuh fungsinya.
- Awal dari fungsi tubuh.
- Akses nilai kewarganegaraan anggota struct dan mencetaknya di konsol bersama teks lain.
- Akses nilai usia anggota struct dan mencetaknya di konsol bersama teks lain.
- Akhir dari fungsi tubuh.
Batasan struktur C ++
Berikut ini adalah batasan struktur:
- Tipe data struct tidak dapat diperlakukan seperti tipe data bawaan.
- Operator seperti + -, dan lainnya tidak dapat digunakan pada variabel struktur.
- Struktur tidak mendukung penyembunyian data. Anggota struktur dapat diakses oleh fungsi apa pun, apa pun cakupannya.
- Anggota statis tidak dapat dideklarasikan di dalam badan struktur.
- Konstruktor tidak dapat dibuat di dalam struktur.
Ringkasan:
- Struct adalah struktur data yang menyimpan elemen data milik berbagai tipe.
- Sedangkan array menyimpan elemen data dari tipe yang sama, struct menyimpan elemen data dari tipe yang berbeda.
- Sebuah struct harus digunakan ketika elemen data tidak diharapkan untuk mengubah nilai.
- Anggota struct diakses menggunakan operator titik (.).
- Kita harus membuat sebuah instance dari struct.
- Untuk membuat struct C ++, kami menggunakan kata kunci struct.
- Pointer yang menunjuk ke struct dibuat serupa dengan bagaimana pointer yang menunjuk ke tipe reguler dibuat.
- Sebuah struct dapat dikirimkan sebagai argumen ke suatu fungsi dengan cara yang sama seperti fungsi biasa yang dilewatkan.