Menyelesaikan ralat kompilasi C++: 'fungsi' tidak mengambil argumen 'n'
Dalam pengaturcaraan C++, pelbagai ralat kompilasi sering dihadapi. Salah satu ralat biasa ialah: "'fungsi' tidak mengambil argumen 'n'", yang bermaksud bahawa fungsi itu tidak menerima n parameter.
Ralat ini biasanya berlaku apabila fungsi dipanggil Parameter sebenar yang dihantar tidak konsisten dengan bilangan parameter yang diperlukan apabila fungsi diisytiharkan, atau jenis tidak sepadan. Terdapat beberapa cara untuk menyelesaikan ralat ini.
#include <iostream> int add(int a, int b) { return a + b; } int main() { int result = add(1); std::cout << result << std::endl; return 0; }
Apabila menyusun kod ini, ralat berlaku: "'add' tidak mengambil 1 argumen". Cara untuk menyelesaikan ralat ini adalah dengan memasukkan dua parameter jenis int apabila memanggil fungsi add().
int result = add(1, 2);
Cara untuk menyelesaikan masalah ini adalah dengan memastikan pengisytiharan dan definisi fungsi adalah konsisten. Sebagai contoh, dalam kod sampel berikut, pengisytiharan dan takrifan fungsi add() adalah tidak konsisten dengan bilangan parameter. Ia memerlukan dua parameter jenis int apabila mengisytiharkannya, tetapi terdapat hanya satu parameter apabila ia ditakrifkan.
// 头文件 add.h int add(int a, int b); // 源文件 add.cpp int add(int a) { return a + 2; } // 主程序 #include <iostream> #include "add.h" int main() { int result = add(1, 2); std::cout << result << std::endl; return 0; }
Semasa menyusun kod ini, ralat berlaku: "'add' tidak mengambil 2 argumen". Cara untuk menyelesaikan ralat ini adalah dengan menghantar dua parameter jenis int apabila fungsi ditakrifkan, menjadikannya konsisten dengan pengisytiharan.
// 源文件 add.cpp int add(int a, int b) { return a + b; }
Sebagai contoh, kita boleh membebankan fungsi add() supaya ia menerima sama ada dua atau tiga parameter. Berikut ialah kod sampel:
#include <iostream> int add(int a, int b) { return a + b; } int add(int a, int b, int c) { return a + b + c; } int main() { int result1 = add(1, 2); std::cout << result1 << std::endl; int result2 = add(1, 2, 3); std::cout << result2 << std::endl; return 0; }
Menggunakan lebihan fungsi boleh menyesuaikan secara fleksibel kepada panggilan fungsi dengan bilangan parameter yang berbeza dan mengelakkan ralat penyusunan dengan bilangan parameter yang tidak konsisten.
Pelbagai ralat kompilasi sering dihadapi dalam pengaturcaraan Untuk ralat "'function' tidak mengambil argumen 'n'", kita boleh menyemak nombor dan jenis parameter dalam panggilan fungsi untuk memastikan pengisytiharan dan definisi fungsi adalah konsisten. , dan gunakan Fungsi lebihan beban dan kaedah lain boleh digunakan untuk menyelesaikan masalah ini. Pengendalian ralat dan penyahpepijatan yang tepat pada masanya boleh meningkatkan kecekapan pengaturcaraan dan membantu kami menulis kod yang lebih mantap dan boleh dipercayai.
Atas ialah kandungan terperinci Selesaikan ralat kompilasi C++: 'fungsi' tidak mengambil argumen 'n'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!