Disyorkan, 2024

Pilihan Editor

Perbezaan Antara Struktur dan Kelas

Kedua-dua struktur dan kelas menyediakan cara untuk membuat jenis data yang disesuaikan yang boleh digunakan lebih jauh untuk membuat contoh. C ++ memperluaskan peranan struktur untuk membuat kelas. Kedua-dua struktur dan kelas, adalah sama dalam semua kecuali satu perbezaan yang, struktur secara lalai mempunyai semua anggotanya sebagai "awam", dan kelas secara lalai mempunyai semua ahlinya "swasta". Mari kita mengkaji perbezaan antara struktur dan kelas dengan menggunakan carta perbandingan.

Carta Perbandingan

Asas untuk PerbandinganStrukturKelas
AsasSekiranya pengecualian akses tidak diisytiharkan, secara lalai semua ahli adalah 'awam'.Sekiranya pengecualian akses tidak diisytiharkan, secara lalai semua ahli adalah 'swasta'.
Perisytiharanstruct_name {
ketik struct_element 1;
jenis struct_element 2;
ketik struct_element 3;
.
.
.
};
class_name {
ahli data;
fungsi ahli;
};
ContohnyaContohnya 'struktur' dipanggil 'pembolehubah struktur'.Contoh 'kelas' dipanggil 'objek'.

Definisi Struktur

Struktur adalah kumpulan pemboleh ubah jenis data yang berbeza, semuanya dirujuk oleh satu nama. Pengisytiharan struktur membentuk templat yang digunakan untuk membuat contoh struktur. Struktur itu diisytiharkan sebagai berikut.

 struktur sname {type struct_element1; ketik struct_element2; ketik struct_element3; . . . } variable1, variable2, . . .; 

Kata kunci 'struct' menentukan kepada pengkompil bahawa struktur sedang diisytiharkan. 'Sname' mewakili nama yang diberikan kepada struktur. Pengisytiharan struktur selalu dihentikan oleh titik koma, karena dianggap sebagai pernyataan. Anda boleh mengisytiharkan contoh struktur sebelum penamatan seperti yang dilakukan dalam kod di atas (variable1, variable2) atau anda boleh mengisytiharkan contoh struktur di utama (), dengan menulis nama contoh yang diawali dengan nama struktur.

 // contoh. utama () {sname S1, S2; } 

Di sini S1 dan S2 adalah contoh struktur. Contoh struktur dipanggil "pembolehubah struktur". Unsur yang diisytiharkan di dalam tubuh struktur dapat diakses melalui pembolehubah struktur melalui penggunaan operator dot (.).

 // contoh S1. struct_element1; 
  • Susunan struktur juga boleh dibuat, untuk ini, anda perlu terlebih dahulu mengisytiharkan struktur dan kemudian, mengisytiharkan pelbagai jenis itu.
 // sample struct sname sarray [10]; 

Penyataan di atas mewujudkan satu array dengan nama 'sarray' yang mengandungi sepuluh pemboleh ubah, dan setiap pembolehubah teratur seperti yang ditakrifkan dalam 'sname'.

  • Anda boleh lulus ahli struktur ke fungsi, dan anda boleh lulus keseluruhan struktur ke fungsi.
  • Seperti, penunjuk integer, penunjuk array, penunjuk struktur juga boleh diisytiharkan dengan meletakkan '*' di hadapan nama pembolehubah struktur.
 / / sample sname struct * S1; 

Catatan:

Unsur 'struktur' disimpan dalam lokasi memori berdekatan.

Definisi Kelas

Kelas dalam OOP mentakrifkan jenis baru yang mengandungi ahli data dan fungsi anggota, yang digunakan untuk mengakses ahli data kelas. Contoh kelas disebut "objek" yang masing-masing mempunyai organisasi yang sama sebagai kelas. Kelas adalah abstraksi logik, sedangkan objek mempunyai kewujudan fizikal. Kelas ini sama sintaksis dengan strukturnya. Kelas boleh diisytiharkan sebagai berikut.

 kelas class_name {ahli data peribadi dan fungsi ahli. access_specifier data_member; jenis mem_funct (senarai parameter) {. . }} senarai objek; 

Di sini, kelas adalah kata kunci yang mengisytiharkan kepada pengkompil bahawa kelas telah diisytiharkan. Ciri utama OOP ialah penyembunyian data yang dicapai dengan menyediakan tiga spesifikasi akses yang "awam", "swasta", "dilindungi". Sekiranya anda tidak menyatakan apa-apa penunjuk akses dalam kelas semasa mengisytiharkan fungsi anggota atau ahli data, secara lalai semua dianggap sebagai persendirian. Pengawal akses awam membolehkan, fungsi atau data untuk diakses oleh bahagian lain program anda. Ahli-ahli persendirian hanya boleh diakses oleh ahli kelas sahaja. Pengawal akses yang dilindungi digunakan semasa warisan. Sebaik sahaja anda menyatakan pengeluar akses, ia tidak boleh diubah sepanjang program.

Objek-objek ini hanyalah contoh kelas. Ahli kelas diakses oleh objek kelas yang sama menggunakan pengendali dot (.).

 //object.mem_funct (argumen); 
  • Objek ini juga boleh diluluskan sebagai hujah kepada fungsi.
  • Penunjuk ke objek juga boleh dibuat.

Perbezaan Utama Antara Struktur dan Kelas

  1. Perbezaan utama antara struktur dan kelas ialah secara lalai semua ahli struktur adalah awam sedangkan secara lalai semua ahli kelas adalah peribadi.

Kesamaan:

  • Dalam C ++ kedua-dua struktur dan kelas bersamaan sintaksis.
  • Kedua-dua struktur dan kelas boleh mengisytiharkan beberapa ahli mereka secara peribadi.
  • Nama struktur atau kelas boleh digunakan sebagai jenis yang berdiri sendiri.
  • Kedua-dua struktur dan kelas ini menyokong mekanisme warisan.

Kesimpulan:

Struktur dalam C mempunyai beberapa batasan kerana struktur tidak membenarkan data bersembunyi, datatype 'struct' tidak dapat diperlakukan seperti jenis terbina dalam, struktur tidak menyokong warisan. Struktur dalam C ++ mengatasi batasan ini. Dalam C ++, kelas adalah versi diperluaskan struktur. Programmer mendapati mudah untuk menggunakan kelas untuk memegang data dan fungsi kedua-dua dan struktur hanya untuk menyimpan data.

Top