Mengapa MyClass myObj(); membawa kepada kekaburan dalam C ?

Susan Sarandon
Lepaskan: 2024-11-14 18:05:02
asal
801 orang telah melayarinya

Why does MyClass myObj(); lead to ambiguity in C  ?

Kekaburan dalam Pengisytiharan Pembina Kosong

Apabila menghadapi pengisytiharan MyClass myObj();, pengkompil menilai kemungkinan sama ada definisi objek dengan pemula kosong atau pengisytiharan fungsi. Walau bagaimanapun, menurut piawaian bahasa C, kekaburan ini diselesaikan secara konsisten memihak kepada pengisytiharan fungsi.

Penggunaan tanda kurung kosong dalam pengisytiharan pembina hanya dibenarkan dalam konteks tertentu, seperti dalam ungkapan baharu atau apabila membina objek sementara yang dimulakan nilai.

Dalam kes yang diterangkan dalam soalan asal, sintaks yang betul untuk mengisytiharkan objek tanpa sebarang hujah ialah MyClass myObj;, kerana tanda kurungan telah salah dikaitkan dengan pengisytiharan pembina dan bukan sebagai pemula kosong. Ini berkemungkinan membawa kepada ralat penghuraian dalam sesetengah penyusun.

Adalah penting untuk ambil perhatian bahawa tingkah laku ini ditentukan oleh standard bahasa C dan bukan pengehadan pengkompil khusus yang digunakan. Oleh itu, adalah amalan yang baik untuk mengikut sintaks yang betul untuk mengelakkan kekeliruan dan memastikan keserasian dengan persekitaran kompilasi yang berbeza.

Atas ialah kandungan terperinci Mengapa MyClass myObj(); membawa kepada kekaburan dalam C ?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan