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
Lepaskan: 2024-12-21 13:50:12
asal
263 orang telah melayarinya

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);
};
Salin selepas log masuk

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};
};
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan