Dalam C ++ dan bahasa yang dipengaruhi lainnya ada konstruksi yang disebut Struktur ( struct
), dan yang lain disebut class
. Keduanya mampu memegang fungsi dan variabel. Beberapa perbedaan adalah:
- Kelas diberi memori di heap dan
struct
diberikan memori di tumpukan (komentar: ini salah untuk C ++, tapi mungkin benar dalam apa yang disebut OP "bahasa yang dipengaruhi") - Variabel kelas adalah pribadi secara default dan di
struct
dalamnya bersifat publik
Pertanyaan saya adalah: apakah struct
entah bagaimana ditinggalkan untuk Kelas? Jika demikian, mengapa? Selain perbedaan di atas, a struct
dapat melakukan semua hal yang sama seperti kelas. Jadi mengapa meninggalkannya?
c++
object-oriented
prometheuspk
sumber
sumber
Jawaban:
Itu tidak ditinggalkan sama sekali. Faktanya, bahkan bahasa modern seperti C # yang
class
masih menggunakan Anda masih banyakstruct
. Adapun ketika berguna untuk memilih satu dari yang lain, saya merujuk Anda ke artikel ini:Memilih Antara Kelas dan Struktur
Dikutip dari artikel MSDN:
sumber
Anda salah tentang C ++: satu-satunya perbedaan signifikan antara kelas dan struct adalah perbedaan penentu akses default. Struct dan class adalah untuk semua maksud dan tujuan sinonim, saya percaya struct disimpan untuk kompatibilitas ke C.
sumber
bahasa D telah menciptakan perbedaan yang lebih besar antara kelas dan struct
struct di d tidak lain hanyalah stack data yang dialokasikan dengan beberapa fungsi yang dapat Anda panggil (tidak ada opsi untuk warisan kecuali Anda menggunakan enum + pengaturan serikat yaitu mengimplementasikan polymorfism sendiri) yang dilewatkan oleh nilai
kelas seperti kita terbiasa: fungsi virtual, alokasi tumpukan, (tunggal) warisan, disahkan oleh ref
sumber