Rumah > pembangunan bahagian belakang > C++ > Mengapa Kod C Saya Membuang 'Ralat: Permintaan untuk Ahli 'function1' dalam 'myObj', Manakah Jenis Bukan Kelas 'MyClass ()()' '?

Mengapa Kod C Saya Membuang 'Ralat: Permintaan untuk Ahli 'function1' dalam 'myObj', Manakah Jenis Bukan Kelas 'MyClass ()()' '?

Mary-Kate Olsen
Lepaskan: 2024-11-12 12:12:02
asal
378 orang telah melayarinya

Why Does My C   Code Throw an

Kekeliruan Selesai: Memahami Ralat "Pembina Tanpa Argumen"

Pertemuan anda dengan mesej ralat "error: request for ahli 'function1' dalam 'myObj', iaitu jenis bukan kelas 'MyClass ()()'" semasa menyusun kod C anda mungkin membuat anda bingung. Mari kita jelaskan kekeliruan yang menyelubungi ralat ini.

Isu ini berpunca daripada sintaks samar-samar bagi pengisytiharan pembina kosong dengan kurungan. Walaupun nampaknya sintaks berikut mentakrifkan objek tanpa hujah:

MyClass myObj();
Salin selepas log masuk

Standard bahasa menentukan bahawa sintaks sedemikian sebenarnya ditafsirkan sebagai pengisytiharan fungsi. Untuk mengelakkan kekaburan ini, sintaks yang betul untuk mengisytiharkan pembina tanpa hujah ialah:

MyClass myObj;
Salin selepas log masuk
Salin selepas log masuk

Sintaks alternatif ini secara eksplisit menandakan definisi objek, menyelesaikan kekaburan dan membenarkan pengkompil mengakses fungsi fungsi ahli dengan betul1( ).

Ia bukan batasan pengkompil tetapi pematuhan ketat kepada standard bahasa C. Piawaian dengan jelas menyatakan bahawa pengisytiharan fungsi sentiasa diutamakan daripada definisi objek apabila sintaksnya samar-samar.

Oleh itu, untuk mengelakkan ralat sedemikian, pastikan anda sentiasa menggunakan sintaks standard untuk mengisytiharkan pembina tanpa hujah:

MyClass myObj;
Salin selepas log masuk
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Kod C Saya Membuang 'Ralat: Permintaan untuk Ahli 'function1' dalam 'myObj', Manakah Jenis Bukan Kelas 'MyClass ()()' '?. 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