Rumah > pembangunan bahagian belakang > C++ > Mengapa g Menghasilkan Ralat 'Rujukan Tidak Ditakrifkan kepada typeinfo'?

Mengapa g Menghasilkan Ralat 'Rujukan Tidak Ditakrifkan kepada typeinfo'?

Susan Sarandon
Lepaskan: 2024-12-03 06:18:10
asal
315 orang telah melayarinya

Why Does g   Produce

G : Memahami Ralat "Rujukan Tidak Ditakrifkan kepada Typeinfo"

Ralat "rujukan tidak ditentukan kepada maklumat taip" sering ditemui semasa menyusun atur cara C dengan g . Ia menandakan bahawa pemaut tidak dapat mencari maklumat jenis untuk kelas tertentu, yang mungkin mempunyai beberapa sebab.

Punca: Mengisytiharkan Fungsi Maya Tanpa Definisi

Satu sebab biasa untuk ralat ini mengisytiharkan fungsi maya tanpa memberikan definisinya dalam unit kompilasi yang sama. Apabila anda mengisytiharkan fungsi maya tanpa mentakrifkannya, anda mencadangkan bahawa definisinya wujud di tempat lain, sama ada dalam unit kompilasi berikutnya atau pustaka luaran.

Oleh itu, semasa fasa pemautan, pengkompil mencari definisi fungsi maya dalam yang lain. fail objek atau perpustakaan. Jika ia tidak dapat mengesan takrifan, ia menimbulkan ralat "rujukan tidak ditentukan kepada maklumat taip".

Contoh: Pengisytiharan Salah

virtual void fn();
Salin selepas log masuk

Pengisytiharan ini memaklumkan pengkompil bahawa a fungsi maya bernama fn() wujud, tetapi ia tidak menyediakan konkrit pelaksanaan.

Contoh: Definisi Betul

virtual void fn() { /* Implementation code here */ }
Salin selepas log masuk

Apabila anda memberikan definisi kepada fungsi maya, pemaut tidak perlu lagi mencarinya di tempat lain, menyelesaikan ralat.

Analogi: Pembolehubah Luaran Resolusi

Tingkah laku ini serupa dengan mengisytiharkan pembolehubah luaran dalam satu unit kompilasi dan cuba mengaksesnya dalam unit lain tanpa memberikan definisi yang jelas:

extern int i;
int *pi = &i;
Salin selepas log masuk

Di sini, pembolehubah i diisytiharkan secara luaran, menunjukkan bahawa takrifnya terletak pada unit kompilasi lain. Jika takrifan ini tidak tersedia pada masa pautan, pengkompil akan menjana ralat "rujukan tidak ditentukan".

Memahami punca ralat ini adalah penting untuk mengelakkannya dan memastikan penyusunan kod C anda berjaya.

Atas ialah kandungan terperinci Mengapa g Menghasilkan Ralat 'Rujukan Tidak Ditakrifkan kepada typeinfo'?. 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