C 11 memperkenalkan pemula dalam kelas, yang membenarkan pembolehubah ahli dimulakan terus dalam definisi kelas. Walau bagaimanapun, pemula ini mesti mematuhi peraturan sintaks tertentu.
Soalan:
Mengapakah ia diberi mandat bahawa pemula dalam kelas menggunakan sama ada tanda sama (=) atau kerinting pendakap gigi ({})?
Jawapan:
Keperluan ini berfungsi untuk menghapuskan kemungkinan kekaburan sintaks.
Pertimbangkan contoh berikut:
class BadTimes { struct Overloaded; int Overloaded; // Legal, but unusual. int confusing(Overloaded); // <-- Ambiguous line };
Baris bermasalah boleh ditafsirkan dalam dua cara:
Kekaburan ini timbul kerana penggunaan tanda kurung, yang boleh menandakan kedua-dua pengisytiharan kaedah dan pemulaan objek.
Untuk menyelesaikan kekeliruan ini, C 11 mewajibkan penggunaan pendakap kerinting untuk pemula dalam kelas. Ini secara jelas menunjukkan bahawa mengelirukan ialah pembolehubah ahli:
class BadTimes { struct Overloaded; int Overloaded; // Legal, but unusual. int confusing{Overloaded}; // <-- Clear initialization };
Oleh itu, pemula dalam kelas mesti menggunakan pendakap sama atau kerinting untuk mengelakkan salah faham sintaks dan memastikan kebolehbacaan kod.
Atas ialah kandungan terperinci Mengapa Pemula C Dalam Kelas Mesti Menggunakan `=` atau `{}`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!