Rumah >pembangunan bahagian belakang >C++ >Mengapa 'ralat: meminta ahli '...' dalam '...' yang bukan jenis kelas' Berlaku dalam C dan Bagaimana Ia Boleh Dibetulkan?

Mengapa 'ralat: meminta ahli '...' dalam '...' yang bukan jenis kelas' Berlaku dalam C dan Bagaimana Ia Boleh Dibetulkan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-05 06:22:111000semak imbas

Why Does

Menyelesaikan "ralat: permintaan untuk ahli '...' dalam '...' yang bukan jenis kelas"

Apabila menemui mesej ralat "ralat: permintaan untuk ahli '...' dalam '...' yang bukan jenis kelas," dalam C , ia sering menunjukkan masalah dengan instantiasi objek dan akses ahli kelas. Untuk menangani isu ini, mari kita mendalami kod yang disediakan dan punca ralat.

Kod mentakrifkan kelas Foo dengan dua pembina: satu yang tidak mengambil hujah dan satu yang memerlukan satu hujah. Niatnya adalah untuk mencipta objek Foo menggunakan kedua-dua pembina. Walau bagaimanapun, ralat berlaku apabila cuba mencipta objek menggunakan pembina tanpa hujah.

Setelah diperiksa, isunya terletak pada baris berikut:

Foo foo2();

Pengkompil mentafsir baris ini sebagai pengisytiharan fungsi dengan nama 'foo2' dan jenis pulangan 'Foo.' Walau bagaimanapun, tujuan yang dimaksudkan adalah untuk mengisytiharkan dan membuat instantiate objek kelas Foo menggunakan pembina lalai. Untuk menyelesaikan masalah ini, sintaks harus diubah suai seperti berikut:

Foo foo2;

Dengan hanya mengalih keluar kurungan, pengkompil kini mentafsirkan baris dengan betul sebagai pengisytiharan objek dan instantiasi, menggunakan pembina lalai untuk memulakan objek foo2 .

Pengubahsuaian ini membenarkan kod untuk menyusun dan melaksanakan seperti yang diharapkan. Objek kini boleh dibuat menggunakan kedua-dua pembina, dan fungsi ahli boleh diakses tanpa masalah. Oleh itu, ingat untuk menggunakan sintaks yang betul untuk pengisytiharan objek dan instantiasi untuk mengelakkan jenis ralat dalam pengaturcaraan C.

Atas ialah kandungan terperinci Mengapa 'ralat: meminta ahli '...' dalam '...' yang bukan jenis kelas' Berlaku dalam C dan Bagaimana Ia Boleh Dibetulkan?. 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