Rumah > pembangunan bahagian belakang > C++ > Mengapa Templat C Menyebabkan Ralat Penyambung 'Simbol Luaran Tidak Selesai'?

Mengapa Templat C Menyebabkan Ralat Penyambung 'Simbol Luaran Tidak Selesai'?

Mary-Kate Olsen
Lepaskan: 2025-01-05 13:04:41
asal
849 orang telah melayarinya

Why Do C   Templates Cause

Mengapa Templat Menyebabkan Ralat "Simbol Luaran Tidak Selesai"?

Apabila membangunkan kod C dengan templat, adalah perkara biasa untuk menghadapi ralat "simbol luaran yang tidak dapat diselesaikan" semasa pemautan. Isu ini timbul kerana kelas dan fungsi templat tidak digunakan seketika sehingga ia digunakan, biasanya dalam fail sumber berasingan (.cpp).

Apabila templat digunakan, pengkompil menuntut kod lengkap untuk fungsi itu dibina fungsi yang betul dengan jenis yang sesuai. Walau bagaimanapun, kod fungsi terkandung dalam fail sumber templat dan oleh itu tidak tersedia.

Oleh itu, pengkompil menganggap fungsi tersebut ditentukan di tempat lain dan hanya termasuk panggilannya. Apabila fail sumber templat disusun, jenis templat khusus daripada sumber program tidak digunakan, dan dengan itu ia gagal menjana kod fungsi penting. Ini mengakibatkan ralat simbol luaran yang tidak dapat diselesaikan.

Cara Menyelesaikan Isu:

  1. Sertakan Takrifan Fungsi Ahli dalam Pengepala Templat: Tentukan fungsi ahli dalam fail pengepala templat dan bukannya mencipta fail sumber yang berasingan. Ini memberikan pengkompil akses kepada kod lengkap untuk fungsi semasa penyusunan fungsi yang ditaip dalam sumber program.
  2. Sebaris Semua Fungsi Ahli dalam Sumber Templat: Ini bukan lagi disyorkan untuk versi moden Visual Studio (2017).
  3. Gunakan Kata Kunci "eksport" dalam Templat Sumber: Tentukan fungsi ahli dalam sumber templat menggunakan kata kunci "eksport". Walau bagaimanapun, pendekatan ini tidak disokong secara meluas oleh penyusun dan telah ditamatkan dalam C 11.

Atas ialah kandungan terperinci Mengapa Templat C Menyebabkan Ralat Penyambung 'Simbol Luaran Tidak Selesai'?. 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