Rumah > pembangunan bahagian belakang > C++ > Ralat kompilasi C++: Argumen fungsi tidak sah tidak boleh digunakan, bagaimana untuk menyelesaikannya?

Ralat kompilasi C++: Argumen fungsi tidak sah tidak boleh digunakan, bagaimana untuk menyelesaikannya?

WBOY
Lepaskan: 2023-08-22 08:01:44
asal
1520 orang telah melayarinya

Dalam pengaturcaraan C++, ralat kompilasi adalah perkara yang sangat biasa Ini juga merupakan masalah yang mesti kita hadapi dalam proses pembelajaran dan menggunakan C++. Salah satu ralat kompilasi biasa ialah "tidak boleh menggunakan hujah fungsi tidak sah", yang sering berlaku semasa menulis fungsi. Artikel ini akan memperkenalkan punca dan penyelesaian ralat kompilasi ini.

1. Punca ralat

Ralat kompilasi "Tidak boleh menggunakan hujah fungsi tidak sah" biasanya disebabkan oleh penggunaan jenis atau nombor parameter yang salah. Secara khusus, ralat ini biasanya disebabkan oleh sebab berikut:

1.1 Ketidakpadanan jenis parameter

Definisi fungsi C++ perlu menentukan jenis parameter Jika jenis parameter yang dihantar semasa memanggil fungsi tidak sepadan, ia akan menyebabkan ralat Penyusunan. Sebagai contoh, jika kita mentakrifkan fungsi seperti berikut:

void print(int n) {
    std::cout << n << std::endl;
}
Salin selepas log masuk
Salin selepas log masuk

Apabila memanggil fungsi ini, jika jenis parameter yang dihantar bukan int, ralat kompilasi akan berlaku, seperti:

double x = 3.14;
print(x); // 错误,参数类型不匹配
Salin selepas log masuk

1.2 Tidak padan dalam bilangan parameter

Sebaliknya, Jika bilangan parameter yang dihantar kepada fungsi tersebut adalah menyalahi undang-undang, ralat kompilasi akan berlaku, contohnya:

void print(int n) {
    std::cout << n << std::endl;
}
Salin selepas log masuk
Salin selepas log masuk

Apabila memanggil fungsi ini, jika bilangan parameter yang diluluskan bukan 1, ralat kompilasi akan berlaku, contohnya:

int a = 1, b = 2;
print(a, b); // 错误,参数数量不匹配
Salin selepas log masuk

2 Penyelesaian Satu faedah mendapat ralat kompilasi "Tidak boleh menggunakan hujah fungsi tidak sah" dengan kaedah

ialah ia memberitahu kami apa yang salah dalam panggilan fungsi. Selagi kita mengetahui punca ralat tertentu, kita boleh mengambil langkah yang sesuai untuk menyelesaikan masalah tersebut.

2.1 Sahkan sama ada jenis parameter sepadan

Jika ralat kompilasi "Tidak boleh menggunakan argumen fungsi tidak sah" berlaku, kami harus terlebih dahulu mengesahkan sama ada jenis parameter dalam definisi fungsi betul-betul sepadan dengan jenis parameter yang dihantar semasa memanggil. Jika jenis tidak sepadan, kami perlu mengubah suai kod untuk memastikan bahawa jenis parameter yang diluluskan sepadan dengan jenis parameter dalam definisi fungsi.

2.2 Ubah suai bilangan parameter

Jika ralat kompilasi "Tidak boleh menggunakan argumen fungsi tidak sah" berlaku, kami juga perlu mengesahkan sama ada bilangan parameter fungsi itu betul. Jika bilangan parameter tidak sepadan, kita perlu menambah atau mengalih keluar parameter untuk memastikan bilangan parameter yang dihantar adalah sama dengan bilangan parameter dalam definisi fungsi.

2.3 Menggunakan lebihan fungsi

Cara lain untuk menyelesaikan ralat penyusunan "Tidak boleh menggunakan hujah fungsi tidak sah" adalah dengan menggunakan lebihan fungsi. Lebihan beban fungsi merujuk kepada mentakrifkan berbilang fungsi dengan nama yang sama tetapi senarai parameter berbeza dalam skop yang sama. Contohnya:

void print(int n) {
    std::cout << n << std::endl;
}

void print(double n) {
    std::cout << n << std::endl;
}
Salin selepas log masuk

Apabila fungsi cetakan dipanggil, pengkompil akan memanggil fungsi yang sepadan berdasarkan jenis parameter yang diluluskan. Lebihan beban fungsi boleh digunakan untuk mengendalikan situasi di mana bilangan parameter berbeza dengan mudah.

2.4 Menggunakan Fungsi Templat

Cara lain untuk menyelesaikan ralat penyusunan "Tidak boleh menggunakan hujah fungsi tidak sah" ialah menggunakan fungsi templat. Fungsi templat ialah fungsi yang membenarkan fungsi menyesuaikan diri dengan pelbagai jenis data. Contohnya:

template <typename T>
void print(T n) {
    std::cout << n << std::endl;
}
Salin selepas log masuk

Fungsi templat ini boleh menyesuaikan diri dengan mana-mana jenis data. Apabila memanggil fungsi ini, pengkompil secara automatik membuat kesimpulan jenis hujah.

Ralat kompilasi "Tidak boleh menggunakan argumen fungsi tidak sah" adalah salah satu masalah yang sering dihadapi dalam pengaturcaraan C++. Memahami punca dan penyelesaian ralat kompilasi boleh membantu kami mencari dan menyelesaikan masalah dengan lebih cepat, serta meningkatkan kecekapan pengaturcaraan kami.

Atas ialah kandungan terperinci Ralat kompilasi C++: Argumen fungsi tidak sah tidak boleh digunakan, bagaimana untuk menyelesaikannya?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan