Rujukan Tidak Ditakrifkan kepada Pembina Kelas Templat
Dalam kod C ini, pengkompil menjana ralat "rujukan tidak ditentukan kepada cola(float):: cola()". Ralat ini berlaku kerana pengkompil tidak dapat mencari pelaksanaan pembina untuk cola kelas templat.
Jawapan 1: Instantiasi Templat Eksplisit
Satu penyelesaian adalah dengan menyegerakan secara eksplisit cola kelas templat pada penghujung cola.cpp, memaksanya untuk menyusun konkrit instantiations.
template class cola<float>; template class cola<string>;
Jawapan 2: Kemasukan Fail Pengepala
Sebagai alternatif, pelaksanaan kelas templat boleh dialihkan ke fail pengepala cola.h. Ini memastikan bahawa pelaksanaan tersedia untuk semua unit terjemahan yang termasuk fail pengepala.
Sebab Kemasukan Fail Pengepala
Meletakkan pelaksanaan dalam fail pengepala mengelakkan keperluan untuk instantiasi yang jelas. Ia menjamin bahawa kelas templat dan fungsi ahlinya tersedia untuk setiap unit terjemahan yang termasuk fail pengepala. Pendekatan ini biasanya digunakan untuk kelas templat yang digunakan secara meluas di seluruh pangkalan kod.
Nota Tambahan:
Atas ialah kandungan terperinci Mengapa Kod C Saya Menghasilkan Ralat 'Rujukan Tidak Ditakrifkan kepada Pembina Kelas Templat'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!