Grafik perbandingan
Dasar untuk Perbandingan | Struktur | Kelas |
---|---|---|
Dasar | Jika specifier akses tidak dideklarasikan, secara default semua anggota adalah 'publik'. | Jika specifier akses tidak dideklarasikan, secara default semua anggota adalah 'pribadi'. |
Pernyataan | struct structure_name { ketik struct_element 1; ketik struct_element 2; ketik struct_element 3; . . . }; | class class_name { anggota data; fungsi anggota; }; |
Contoh | Contoh 'struktur' disebut 'variabel struktur'. | Instance dari 'kelas' disebut 'objek'. |
Definisi Struktur
Struktur adalah kumpulan variabel tipe data yang berbeda, semua dirujuk oleh satu nama. Deklarasi struktur membentuk templat yang digunakan untuk membuat turunan dari struktur. Struktur dinyatakan sebagai berikut.
struct sname {type struct_element1; ketik struct_element2; ketik struct_element3; . . . } variabel1, variabel2, . . .;
Kata kunci 'struct' mendefinisikan ke kompiler bahwa suatu struktur sedang dideklarasikan. 'Sname' mewakili nama yang diberikan pada struktur. Deklarasi struktur selalu diakhiri dengan tanda titik koma, karena dianggap sebagai pernyataan. Anda dapat mendeklarasikan instance dari struktur sebelum penghentiannya seperti yang dilakukan dalam kode di atas (variabel1, variabel2) atau Anda dapat mendeklarasikan instance struktur di main (), dengan menulis nama instance yang didahului dengan nama struktur.
// contoh. main () {sname S1, S2; }
Di sini S1 dan S2 adalah contoh dari struktur. Contoh-contoh struktur disebut "variabel struktur". Elemen yang dideklarasikan di dalam tubuh struktur dapat diakses melalui variabel struktur melalui penggunaan operator titik (.).
// contoh S1. struct_element1;
- Array struktur juga dapat dibuat, untuk ini, pertama-tama Anda harus mendeklarasikan struktur dan kemudian, mendeklarasikan array jenis itu.
// sample struct sname sarray [10];
Pernyataan di atas membuat array dengan nama 'sarray' yang berisi sepuluh variabel, dan masing-masing variabel diatur sebagaimana didefinisikan dalam 'sname'.
- Anda bisa meneruskan anggota struktur ke suatu fungsi, dan Anda bisa meneruskan seluruh struktur ke suatu fungsi.
- Seperti, integer pointer, pointer array, pointer struktur juga dapat dideklarasikan dengan menempatkan '*' di depan nama variabel struktur.
// sampel sname struct * S1;
catatan:
Elemen 'struktur' disimpan di lokasi memori yang berdekatan.
Definisi Kelas
Kelas dalam OOP mendefinisikan tipe baru yang berisi anggota data dan fungsi anggota, yang digunakan untuk mengakses anggota data kelas. Contoh kelas disebut "objek" yang masing-masing memiliki organisasi yang sama dengan kelas. Kelas adalah abstraksi yang logis, sedangkan objek memiliki keberadaan fisik. Kelas secara sintaksis mirip dengan struktur. Kelas dapat dideklarasikan sebagai berikut.
class class_name {data pribadi anggota dan fungsi anggota. access_specifier type data_member; ketik mem_funct (daftar parameter) {. . }} daftar objek;
Di sini, kelas adalah kata kunci yang menyatakan kepada kompiler bahwa suatu kelas telah dideklarasikan. Fitur utama dari OOP adalah penyembunyian data yang dilakukan dengan menyediakan tiga penentu akses yang "publik", "pribadi", "dilindungi". Jika Anda tidak menentukan specifier akses di kelas saat mendeklarasikan anggota data atau fungsi anggota, secara default semua dianggap pribadi. Penentu akses publik memungkinkan, fungsi, atau data untuk diakses oleh bagian lain dari program Anda. Anggota pribadi kelas hanya dapat diakses oleh anggota kelas itu saja. Specifier akses yang dilindungi diterapkan selama pewarisan. Setelah Anda menyatakan specifier akses, itu tidak dapat diubah di seluruh program.
Objek tidak lain adalah instance dari kelas. Anggota kelas diakses oleh objek dari kelas yang sama menggunakan operator titik (.).
//object.mem_funct (argumen);
- Objek juga bisa diteruskan sebagai argumen ke suatu fungsi.
- Pointer ke objek juga bisa dibuat.
Perbedaan Utama Antara Struktur dan Kelas
- Perbedaan utama antara struktur dan kelas adalah bahwa secara default semua anggota struktur bersifat publik sedangkan, secara default semua anggota kelas adalah pribadi.
Kesamaan:
- Dalam C ++ baik struktur dan kelas secara sintaksis sama.
- Baik struktur dan kelas dapat mendeklarasikan beberapa anggotanya pribadi.
- Nama struktur atau kelas dapat digunakan sebagai tipe yang berdiri sendiri.
- Baik struktur maupun kelas mendukung mekanisme pewarisan.
Kesimpulan:
Struktur dalam C memiliki beberapa batasan karena struktur tidak mengizinkan data disembunyikan, tipe data 'struct' tidak dapat diperlakukan seperti tipe bawaan, struktur tidak mendukung warisan. Struktur dalam C ++ mengatasi keterbatasan ini. Dalam C ++, kelas adalah versi struktur yang diperluas. Programmer merasa mudah menggunakan kelas untuk menyimpan data dan berfungsi baik dan struktur hanya untuk menyimpan data.