Rumah > Artikel > pembangunan bahagian belakang > Perbezaan antara struktur dan kelas dalam c++
Struktur dan kelas ialah jenis data komposit dalam C++, tetapi terdapat perbezaan utama berikut: kebenaran akses lalai (struktur adalah awam, kelas adalah peribadi), pembina lalai (kelas mempunyainya, struktur tidak mempunyai), fungsi ahli (kelas mempunyai ia, struktur mempunyainya) Tiada), warisan (disokong oleh kelas, tidak disokong oleh struktur), polimorfisme (disokong oleh kelas, tidak disokong oleh struktur).
Perbezaan antara struktur dan kelas dalam C++
Dalam C++, struktur dan kelas ialah jenis data komposit yang digunakan untuk menyusun data dan kaedah. Walau bagaimanapun, terdapat beberapa perbezaan utama antara mereka:
1 Akses lalai:
Ahli struktur mempunyai akses awam secara lalai, manakala ahli kelas mempunyai akses peribadi secara lalai.
2. Pembina lalai:
Struktur tidak mempunyai pembina lalai, tetapi kelas mempunyai.
3. Fungsi ahli:
Struktur tidak boleh mengandungi fungsi ahli, tetapi kelas boleh.
4. Warisan:
Struktur tidak boleh diwarisi, tetapi kelas boleh.
5 Polimorfisme:
Struktur tidak menyokong polimorfisme, tetapi kelas menyokong.
Penjelasan terperinci:
Kebenaran akses lalai:
Semua ahli struktur boleh diakses dari mana-mana sahaja, manakala ahli persendirian kelas hanya boleh diakses dari dalam kelas.
Pembina lalai:
Struktur tidak mempunyai pembina lalai, yang bermaksud bahawa pembina mesti ditakrifkan secara eksplisit untuk mencipta tika struct. Kelas mempunyai pembina lalai yang memulakan semua ahli kepada nilai lalai.
Fungsi ahli:
struct tidak boleh mengandungi fungsi ahli kerana ia tidak mempunyai penunjuk fungsi ahli. Kelas boleh mengandungi fungsi ahli yang membenarkan operasi pada data.
Warisan:
Struktur tidak boleh diwarisi kerana tidak mempunyai vtable. Kelas boleh diwarisi, membenarkan penciptaan kelas baharu dengan gelagat berbeza.
Polymorphism:
Struktur tidak menyokong polimorfisme, yang bermaksud bahawa kaedah kelas terbitan tidak boleh dipanggil melalui penunjuk kelas asas. Kelas menyokong polimorfisme, membenarkan kaedah kelas terbitan dipanggil menggunakan penunjuk kelas asas.
Atas ialah kandungan terperinci Perbezaan antara struktur dan kelas dalam c++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!