Selesaikan ralat kompilasi C++: 'rujukan tidak ditentukan kepada 'fungsi', bagaimana untuk menyelesaikannya?
1. Penerangan masalah
Dalam proses pengaturcaraan dalam C++, kita sering menghadapi ralat kompilasi Salah satu ralat yang biasa ialah "rujukan yang tidak ditentukan kepada 'fungsi' ini bermaksud bahawa rujukan kepada fungsi tertentu tidak ditentukan. Ralat ini biasanya berlaku semasa fasa pemautan, apabila pengkompil tidak dapat mencari definisi fungsi, menyebabkan kompilasi gagal.
2. Punca ralat
3 Penyelesaian
Atas sebab ralat di atas, berikut adalah beberapa penyelesaian biasa.
// function.h int sum(int a, int b);
// main.cpp #include "function.h" int main() { int result = sum(1, 2); return 0; }
Dalam kod di atas, kami hanya menyediakan pengisytiharan fungsi, tetapi bukan definisi fungsi. Untuk menyelesaikan masalah ini, kita perlu menyediakan definisi fungsi di tempat yang sesuai:
// function.cpp int sum(int a, int b) { return a + b; }
Dengan cara ini, pada masa penyusunan, pengkompil boleh mencari definisi sebenar fungsi, dengan itu menyelesaikan "rujukan tidak ditentukan kepada 'fungsi' "kesilapan.
Pertimbangkan contoh kod berikut:
// function.h float sum(int a, int b); // 函数声明
// function.cpp int sum(int a, int b) { // 函数定义 return a + b; }
Dalam kod di atas, pengisytiharan dan jenis nilai pulangan yang ditentukan bagi fungsi adalah tidak konsisten, satu diisytiharkan sebagai jenis apungan, dan satu lagi ditakrifkan sebagai jenis int. Ini akan menyebabkan pengkompil tidak dapat memadankan rujukan dan definisi fungsi dengan betul, mengakibatkan ralat "rujukan tidak ditentukan kepada 'fungsi'".
Untuk menyelesaikan masalah ini, kita hanya perlu memastikan pengisytiharan fungsi konsisten dengan jenis nilai pulangan yang ditentukan:
// function.h int sum(int a, int b); // 函数声明
// function.cpp int sum(int a, int b) { // 函数定义 return a + b; }
Dengan cara ini, pengkompil boleh memadankan rujukan dan definisi fungsi dengan betul, menyelesaikan masalah daripada ralat "rujukan tidak ditentukan kepada 'fungsi'".
4. Ringkasan
Dalam pengaturcaraan C++, ralat kompilasi tidak asing lagi bagi kita. Salah satu ralat biasa ialah "rujukan tidak ditentukan kepada 'fungsi'", yang bermaksud bahawa rujukan kepada fungsi tidak mempunyai definisi ditemui. Untuk menyelesaikan masalah ini, kita perlu memberi perhatian kepada sama ada definisi fungsi disediakan, dan sama ada pengisytiharan fungsi itu konsisten dengan definisinya. Masalah ini boleh diselesaikan dengan mudah dengan memberikan definisi fungsi dengan betul dan memastikan pengisytiharan fungsi konsisten dengan definisi.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat kompilasi C++: 'rujukan tidak ditentukan kepada 'fungsi'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!