Logo ms.removalsclassifieds.com

Perbezaan Antara Kelas dan Struktur (Dengan Jadual)

Isi kandungan:

Anonim

Persoalan sama ada untuk menggunakan kelas atau struct adalah perkara biasa di kalangan pengaturcara C++ semasa mereka bentuk kod. Di antara pembangun termuda, terdapat awan salah tanggapan tentang perbezaan antara kelas dan struktur secara teknikal. Walaupun selepas memahami perbezaan, pembangun kadangkala tidak bersetuju tentang kod yang lebih sesuai.

Dalam.NET, secara amnya terdapat dua kategori jenis, kelas yang merupakan jenis rujukan dan struct ialah jenis nilai. Jenis rujukan kebanyakannya hidup pada timbunan, manakala jenis nilai hidup sejajar. Beberapa perbezaan lain boleh dijelaskan oleh artikel ini.

Kelas vs Struktur

Perbezaan utama antara kelas dan struct ialah kelas adalah jenis rujukan yang diperuntukkan pada timbunan serta pengumpulan sampah. Sebaliknya, struct ialah jenis nilai yang diperuntukkan sama ada pada sebaris atau timbunan dalam jenis yang mengandungi.

Kelas yang terdapat dalam C++ agak serupa dengan struktur C. Ia terdiri daripada senarai ahli data dan set operasi yang biasanya dilakukan pada kelas. Boleh dikatakan bahawa dalam pengaturcaraan berorientasikan objek, kelas adalah blok bangunan. Kelas juga serupa dengan pelan tindakan sesuatu objek.

Struct ialah jenis data jenis nilai. Ia membantu untuk membuat pembolehubah tunggal memegang data dipautkan daripada beberapa jenis. Semasa membuat struktur, kata kunci "struct" digunakan. Apabila objek struct dicipta menggunakan operator baru, maka pembina yang sesuai dipanggil, dan ia akan dibuat.

Jadual Perbandingan Antara Kelas dan Struktur

Parameter Perbandingan Kelas Struktur
Keterlihatan lalai Persendirian Awam
Saiz apabila kosong 1 Bait 0 Bait
Permulaan pembolehubah ahli Membolehkan Tidak membenarkan
Kutipan sampah Mungkin kerana ia menggunakan rujukan lulus Tidak mungkin kerana ia menggunakan nilai lulus
Kebolehgunaan semula sepenuhnya tidak

Apa itu Kelas?

Dalam pengaturcaraan C++, kelas ialah struktur data atau jenis yang ditentukan pengguna yang mempunyai fungsi dan data sebagai ahlinya. Akses lalai adalah peribadi kepada ahli kelas C++. Ahli persendirian gagal mengakses di luar kelas dan hanya boleh diakses melalui kaedah kelas. Warisan dibenarkan dalam kelas kerana fungsinya boleh diwarisi oleh subkelasnya

Contoh jenis data kelas dikenali sebagai objek. Ia boleh mengandungi fungsi ahli, operator terlampau beban, dan pemalar berubah-ubah yang ditakrifkan oleh pengaturcara. Dengan bantuan templat kelas, pengisytiharan kelas boleh dijana. Templat kelas ini mewakili keluarga kelas.

Pengisytiharan kelas sebenar diperoleh dengan templat instantiate dengan satu atau lebih argumen templat. Pengkhususan templat ditakrifkan sebagai instantiasi templat dengan set hujah tertentu. Sintaks C++ cuba menjadikan struktur setiap aspek kelihatan seperti jenis data asas.

Kelas C++ mempunyai ahli mereka. Ahli kelas diisytiharkan sama ada boleh diakses secara peribadi atau umum oleh penentu masing-masing. Selepas penentu, jika mana-mana ahli yang ditemui akan mempunyai akses yang berkaitan melainkan penentu lain ditemui.

Apakah Struktur?

Dalam satu perkataan, struct biasanya bermaksud satu berkas. Ia adalah beberapa elemen berkaitan yang diperlukan untuk diikat bersama dalam konteks dengan cara tertentu. Konteks jenis ini boleh menghantar nombor yang terhad argumen kepada fungsi.

Dari segi bahasa pengaturcaraan C, ia adalah pengisytiharan jenis data komposit. Ia biasanya mentakrifkan senarai berkumpulan pembolehubah fizikal di bawah satu nama dalam blok memori. Ia membenarkan pembolehubah berbeza untuk diakses melalui satu titik atau melalui nama yang diisytiharkan struct yang mengembalikan alamat yang sama.

Struk boleh mengandungi jenis data lain supaya digunakan untuk rekod dengan jenis data bercampur atau jenis campuran lain. Dalam C, ia merujuk blok bersebelahan memori fizikal, biasanya dihadkan oleh sempadan panjang perkataan. Akibatnya, setiap medan terletak pada offset tertentu yang tetap dari awal lagi.

Apabila ia datang kepada bahasa C++, struct adalah serupa dengan kelas C++ tetapi keterlihatan lalai agak berbeza. Ia boleh diperuntukkan secara dinamik atau diperuntukkan secara statik sama ada pada timbunan atau timbunan dengan penuding eksplisit. Keterlihatan lalai struct dalam C++ adalah peribadi.

Perbezaan Utama Antara Kelas dan Struktur

Kesimpulan

Ia boleh disimpulkan bahawa kedua-dua kelas dan struct adalah biasa di kalangan pengaturcara C++. Kelas ialah jenis rujukan yang diperuntukkan pada timbunan serta kutipan sampah. Di sisi lain, struct ialah jenis nilai yang diperuntukkan sama ada pada sebaris atau timbunan dalam jenis yang mengandungi.

Apabila ia datang kepada keterlihatan, keterlihatan lalai adalah peribadi dalam kelas, manakala ia adalah awam dalam struct. Pengumpulan sampah boleh dilakukan di dalam kelas kerana ia menggunakan rujukan pas. Sebaliknya, dalam struct, kutipan sampah tidak mungkin kerana ia menggunakan nilai pas-demi-. Saiz kelas ialah 1 bait apabila ia kosong, manakala dalam pukulan, ia adalah 0 bait.

Rujukan

Perbezaan Antara Kelas dan Struktur (Dengan Jadual)