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
Mary-Kate Olsenasal
2024-11-12 12:12:02402semak imbas

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();

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;

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;

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!

Kenyataan:
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