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!