Saya baru saja menemukan kesalahan berikut (dan menemukan solusinya online, tetapi tidak ada di Stack Overflow):
(.gnu.linkonce. [stuff]): referensi yang tidak ditentukan ke [metode] [file objek] :(. gnu.linkonce. [stuff]): referensi yang tidak terdefinisi ke `typeinfo for [classname] '
Mengapa orang bisa mendapatkan salah satu dari kesalahan linker "referensi tidak ditentukan untuk typeinfo" ini?
(Poin bonus jika Anda dapat menjelaskan apa yang terjadi di balik layar.)
virtual void abc() =0;
(jika versi dasar tidak pernah disebut)
abc()
seperti itu Anda dapat dengan mudah lupa untuk mendefinisikan ulang abc()
di kelas turunan dan berpikir bahwa semuanya baik-baik saja, karena Anda masih dapat memanggil fungsi tanpa masalah. Praktik yang baik untuk mengimplementasikan fungsi virtual murni ditemukan dalam artikel ini , dan ini adalah untuk membuat fungsi cetak "Fungsi virtual murni disebut" dan kemudian crash program.
= 0;
.