Rumah >pembangunan bahagian belakang >C++ >Mengapa Saya Mendapat Ralat 'Rujukan Tidak Ditakrifkan kepada' untuk Pembina Kelas Templat dan Bagaimana Saya Boleh Membetulkannya?
Ralat pengkompil "rujukan tidak ditentukan kepada..." untuk pembina kelas templat menandakan kekurangan instantiasi yang jelas arahan untuk kelas templat khusus yang digunakan dalam program. Isu ini timbul kerana pengkompil tidak menyusun kod templat secara automatik sehingga ia diperlukan secara eksplisit.
Tambahkan pernyataan instantiasi templat eksplisit ke penghujung fail pelaksanaan (cola .cpp dalam kes ini):
template class cola<float>; template class cola<string>;
Selain itu, masukkan baris berikut dalam nodo_colaypila.cpp:
template class nodo_colaypila<float>; template class nodo_colaypila<std::string>;
Ini memaksa pengkompil untuk menyusun kelas templat yang diperlukan.
Alihkan kod pelaksanaan daripada cola .cpp dan nodo_colaypila.cpp ke dalam cola.h dan nodo_colaypila.h, masing-masing. Ini memastikan ketersediaan definisi fungsi dalam semua unit terjemahan menggunakan kelas templat.
Penyelesaian 1:
Penyelesaian 2:
nodo_colaypila<T><T>* ult, pri;
sepatutnya:
nodo_colaypila<T>* ult, *pri;
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Rujukan Tidak Ditakrifkan kepada' untuk Pembina Kelas Templat dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!