Selesaikan ralat kompilasi C++: 'tiada fungsi padanan untuk panggilan ke 'fungsi', bagaimana untuk menyelesaikannya?
Apabila menulis program dalam C++, kita sering menghadapi pelbagai ralat kompilasi. Salah satu ralat biasa ialah "tiada fungsi yang sepadan untuk panggilan ke 'fungsi'". Ralat ini biasanya berlaku apabila fungsi dipanggil dan pengkompil tidak dapat mencari pengisytiharan atau definisi fungsi yang sepadan. Artikel ini memperincikan cara menyelesaikan ralat kompilasi ini dan menyediakan beberapa kod sampel.
Mula-mula, mari lihat contoh mudah:
#include <iostream> void add(int a, int b) { std::cout << "Sum: " << a + b << std::endl; } int main() { add(1, 2, 3); // 调用了错误的函数 return 0; }
Dalam kod di atas, kami mentakrifkan fungsi tambah untuk mengira jumlah dua integer. Dalam fungsi utama, kami tersilap memanggil fungsi tambah dan lulus tiga parameter. Memandangkan kami tidak menyediakan versi lebihan fungsi tambah yang menerima tiga parameter, pengkompil tidak akan dapat mencari pengisytiharan atau definisi fungsi yang sepadan, mengakibatkan ralat penyusunan.
Untuk menyelesaikan masalah ini, kita perlu melihat mesej ralat dan mencari baris kod yang salah. Pengkompil biasanya memberikan beberapa petunjuk tentang ralat dalam mesej ralat, seperti tiada pengisytiharan atau definisi fungsi yang sepadan ditemui. Berdasarkan petua ini, kami boleh menentukan sebab ralat berlaku dan mengubah suai kod tersebut dengan sewajarnya.
Dalam contoh ini, pengkompil akan melaporkan ralat: "tiada fungsi padanan untuk panggilan untuk 'tambah'". Mesej ralat ini memberitahu kami bahawa fungsi tambah yang kami panggil tidak menemui pengisytiharan atau definisi fungsi yang sepadan. Untuk membetulkan ralat ini, kita perlu mengubah suai parameter panggilan fungsi untuk memastikan ia konsisten dengan parameter yang ditakrifkan oleh fungsi.
Cara untuk membetulkan ralat di atas adalah dengan mengalih keluar parameter tambahan supaya panggilan fungsi sepadan dengan definisi fungsi seperti yang ditunjukkan di bawah:
#include <iostream> void add(int a, int b) { std::cout << "Sum: " << a + b << std::endl; } int main() { add(1, 2); return 0; }
Dalam kod yang diubah suai, kami mengalih keluar parameter tambahan "3" supaya panggilan fungsi sepadan fungsi Tentukan padanan. Dengan cara ini, pengkompil akan dapat mencari definisi fungsi yang dinamakan menambah dan menyusun atur cara dengan jayanya.
Selain daripada ketidakpadanan parameter panggilan fungsi, terdapat beberapa sebab biasa lain yang boleh menyebabkan ralat "tiada fungsi padanan untuk panggilan ke 'fungsi'". Di bawah disenaraikan beberapa situasi dan penyelesaian biasa.
Ringkasnya, apabila kita menyelesaikan ralat kompilasi C++ "tiada fungsi yang sepadan untuk panggilan ke 'fungsi'", kita perlu menyemak mesej ralat dan menentukan punca ralat. Kami kemudiannya boleh menggunakan pembayang yang disediakan oleh mesej ralat untuk mengubah suai kod untuk memastikan bahawa panggilan fungsi sepadan dengan pengisytiharan atau definisi fungsi. Dengan mengubah suai parameter fungsi panggilan dengan betul, kami berjaya menyelesaikan ralat kompilasi ini supaya atur cara boleh menyusun dan berjalan dengan jayanya.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat kompilasi C++: 'tiada fungsi yang sepadan untuk panggilan ke 'fungsi'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!