Rumah >pembangunan bahagian belakang >C++ >Mengapa C 11 Pemula Dalam Kelas Tidak Boleh Menggunakan Tanda Kurung?

Mengapa C 11 Pemula Dalam Kelas Tidak Boleh Menggunakan Tanda Kurung?

DDD
DDDasal
2024-12-21 13:50:12265semak imbas

Why Can't C  11 In-Class Initializers Use Parentheses?

Pemula Dalam Kelas: Mengapa Sekatan Dakap atau Sama?

Dalam C 11, pemula dalam kelas mesti mematuhi sintaks tertentu : mereka mesti sama ada disertakan dalam pendakap kerinting atau terus mengikut tanda sama dengan (=). Walau bagaimanapun, penggunaan tanda kurung tidak dibenarkan. Memahami rasional di sebalik keperluan ini adalah penting.

Mencegah Kekaburan Sintaks

Sekatan berpunca daripada potensi kekaburan sintaks. Pertimbangkan kelas berikut:

class AmbiguousSyntax {
    struct Overloaded;
    int Overloaded;
    
    int confusing(Overloaded);
};

Barisan 4 adalah samar-samar jika kurungan dibenarkan untuk pemula dalam kelas. Ia berpotensi ditafsirkan sebagai sama ada pengisytiharan fungsi ahli bernama "mengelirukan" menerima parameter jenis "Terlebih muatan" atau takrif pembolehubah ahli "int" "mengelirukan" yang dimulakan kepada nilai ahli data "Terlebih muatan."

Kejelasan melalui Kurungan

Dengan memerlukan pendakap kerinting untuk pemula dalam kelas, C 11 menghilangkan kekaburan ini. Mengubah suai contoh sebelumnya:

class AmbiguousSyntax {
    struct Overloaded;
    int Overloaded;
    
    int confusing{Overloaded};
};

Kini, jelas bahawa "mengelirukan" ialah ahli integer yang dimulakan kepada nilai "Terlebih muatan," kerana penggunaan tanda kurung untuk parameter fungsi tidak dibenarkan.

Sekatan sintaks dalam C 11 ini memastikan pembezaan yang jelas antara pengisytiharan fungsi dan pengisytiharan/inisialisasi pembolehubah ahli, dengan itu meningkatkan kebolehbacaan kod dan mengelakkan kekeliruan dalam tafsiran pemula dalam kelas.

Atas ialah kandungan terperinci Mengapa C 11 Pemula Dalam Kelas Tidak Boleh Menggunakan Tanda Kurung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn