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!