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!