Rumah >pembangunan bahagian belakang >C++ >Mengapa `std::is_struct` Tidak Membezakan Antara Structs dan Classes dalam C ?
Mengapa std::is_struct Tidak Membezakan Antara Structs dan Classes
Dalam C , anda mungkin menghadapi situasi di mana membezakan antara kelas dan struct adalah penting. Walau bagaimanapun, ciri jenis std::is_struct tidak memberikan perbezaan ini. Memahami sebab boleh menjelaskan salah tanggapan tentang kelas dan struct.
Salah Konsep: Struktur dan Kelas ialah Jenis Berbeza
Pernyataan "tidak ada perbezaan antara struct dan kelas kecuali keterlihatan" boleh menimbulkan kekeliruan. Sebenarnya, C mempunyai kelas sejak 1985 dan kata kunci struct adalah untuk keserasian ke belakang dengan C.
Realiti: Semua Jenis Diisytiharkan dengan kelas dan struct ialah Kelas
Kata kunci struct hanya mempengaruhi keterlihatan lalai ahli dan pangkalan. Kedua-dua jenis yang diisytiharkan dengan kelas dan struktur ialah kelas.
Kesimpulan
std::is_struct tidak membezakan antara struct dan kelas kerana terdapat tiada perbezaan sedemikian dalam C . Kelas yang diisytiharkan dengan kedua-dua kelas dan struktur adalah jenis yang sama dan mempunyai peraturan keterlihatan yang sama.
Atas ialah kandungan terperinci Mengapa `std::is_struct` Tidak Membezakan Antara Structs dan Classes dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!