Rumah > pembangunan bahagian belakang > C++ > Mengapa 'meminta ahli '...' dalam '...' yang bukan jenis kelas' Berlaku Apabila Menggunakan Kelas C?

Mengapa 'meminta ahli '...' dalam '...' yang bukan jenis kelas' Berlaku Apabila Menggunakan Kelas C?

Linda Hamilton
Lepaskan: 2024-11-30 20:19:11
asal
820 orang telah melayarinya

Why Does

Memahami Ralat: "permintaan untuk ahli '...' dalam '...' yang bukan jenis kelas"

Apabila cuba menggunakan kelas dan fungsi ahli mereka, ralat "permintaan untuk ahli '...' dalam '...' yang bukan jenis kelas" sering timbul. Untuk memahami puncanya, adalah penting untuk menghuraikan kod sumber yang mencetuskannya.

Dalam contoh yang disediakan, kelas Foo mempunyai dua pembina: satu yang tidak menerima hujah dan satu lagi yang menerima hujah integer. Apabila menginstant objek menggunakan pembina dengan hujah, pelaksanaan diteruskan seperti yang dijangkakan. Walau bagaimanapun, menggunakan pembina tanpa hujah menghasilkan ralat yang dinyatakan di atas.

Menyelesaikan Isu

Ralat berasal daripada sintaks yang salah. Untuk membetulkannya, coretan kod berikut harus digunakan:

Foo foo2();
Salin selepas log masuk

Ganti kod di atas dengan:

Foo foo2;
Salin selepas log masuk

Pengkompil tersilap mentafsir sintaks

Foo foo2()
Salin selepas log masuk

sebagai pengisytiharan fungsi bernama 'foo2' dengan jenis pulangan 'Foo'. Walau bagaimanapun, ini bukan kefungsian yang dimaksudkan.

Mengelakkan Kekaburan

Selepas membetulkan sintaks, satu lagi ralat yang mungkin muncul, membaca "panggilan 'Foo()' yang terlebih muatan adalah samar-samar." Ini berlaku kerana pengkompil mengesan berbilang pembina terlebih beban untuk Foo. Untuk menyelesaikannya, nyatakan pembina yang akan digunakan secara eksplisit, seperti ditunjukkan di bawah:

Foo foo2 = Foo();
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa 'meminta ahli '...' dalam '...' yang bukan jenis kelas' Berlaku Apabila Menggunakan Kelas C?. 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