Rumah > pembangunan bahagian belakang > C++ > Mengapa Pembina Saya Tanpa Argumen Menyebabkan Ralat Penyusunan?

Mengapa Pembina Saya Tanpa Argumen Menyebabkan Ralat Penyusunan?

Barbara Streisand
Lepaskan: 2024-11-12 20:30:02
asal
321 orang telah melayarinya

Why Does My Constructor With No Arguments Cause a Compilation Error?

Membersihkan Kekeliruan: Memahami Sintaks "Pembina Tanpa Argumen"

Apabila cuba memulakan objek dengan pembina yang tidak mempunyai hujah, pengaturcara mungkin menghadapi ralat masa kompilasi yang membingungkan "ralat: permintaan untuk ahli '<>' dalam '<>', iaitu daripada jenis bukan kelas '<> ()()'". Mesej yang membingungkan ini berpunca daripada kekaburan sintaksis dalam C .

Secara tradisinya, dalam C , pembina tanpa hujah boleh diisytiharkan dalam dua cara yang setara secara sintaksis:

  1. MyClass myObj;
  2. MyClass myObj();

Walau bagaimanapun, standard bahasa menentukan bahawa pengisytiharan pembina kurungan kosong akan sentiasa ditafsirkan sebagai pengisytiharan fungsi, tidak meninggalkan ruang untuk permulaan pembina kosong.

Sebaliknya, pemula kurungan kosong dibenarkan dalam senario tertentu, seperti apabila memulakan kelas dalam ungkapan baharu atau membina sementara yang dimulakan nilai. Oleh itu, untuk menyelesaikan ralat parse dan mentakrifkan pembina kosong, pengaturcara mesti mengecualikan kurungan secara eksplisit dan menulis:

MyClass myObj;

Penjelasan ini menyelesaikan kekaburan dan memastikan bahawa pengkompil mentafsir dengan betul kod sebagai definisi objek dengan pemula kosong, membenarkan atur cara menyusun dengan jayanya.

Atas ialah kandungan terperinci Mengapa Pembina Saya Tanpa Argumen Menyebabkan Ralat Penyusunan?. 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