Ralat C++: Jenis pemulangan fungsi tidak sepadan dengan jenis nilai pemulangan sebenar Bagaimana saya perlu mengubahnya?

王林
Lepaskan: 2023-08-22 09:48:24
asal
3359 orang telah melayarinya

C++ ialah bahasa pengaturcaraan yang sangat berkuasa, tetapi beberapa ralat pasti akan berlaku semasa menulis atur cara. Salah satu masalah biasa ialah ketidakpadanan antara jenis pulangan fungsi dan jenis nilai pulangan sebenar. Ralat ini agak biasa, tetapi ia boleh menjadi sangat mengecewakan jika anda tidak tahu cara menyelesaikannya. Mari kita lihat sebab ralat ini berlaku dan cara membetulkannya dengan contoh khusus.

Punca masalah

Dalam C++, jenis pemulangan fungsi ditentukan apabila fungsi itu ditakrifkan. Dalam erti kata lain, anda perlu menyatakan secara eksplisit jenis pulangan apabila mentakrifkan fungsi jenis pulangan ini mestilah sama dengan nilai yang akhirnya dikembalikan oleh fungsi, jika tidak, jenis tidak sepadan akan berlaku.

Berikut ialah contoh:

// 函数定义
int add(int a, int b)
{
    return a + b;
}

// 调用函数
int result = add(1, 2);
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan fungsi tambah yang jenis pulangannya ialah jenis int. Apabila memanggil fungsi, kami menetapkan nilai pulangan kepada hasil pembolehubah jenis int. Dalam kes ini, jenis pulangan fungsi adalah konsisten dengan jenis nilai pulangan akhir, jadi tiada masalah.

Walau bagaimanapun, jika jenis pulangan yang kami nyatakan dalam definisi fungsi tidak konsisten dengan jenis nilai pulangan akhir, masalah ketidakpadanan jenis akan berlaku seperti berikut:

// 函数定义
int add(int a, int b)
{
    return a + b + 0.5;
}

// 调用函数
int result = add(1, 2);
Salin selepas log masuk

Dalam kod di atas, apa yang kami pulangkan dalam fungsi tambah ialah a+b+0.5, iaitu nilai jenis berganda. Tetapi dalam definisi fungsi, jenis pulangan kami adalah jenis int. Ini akan menyebabkan masalah ketidakpadanan jenis, dan pengkompil akan menggesa ralat.

Penyelesaian

Jika terdapat masalah jenis pulangan fungsi tidak sepadan dengan jenis nilai pulangan sebenar, penyelesaiannya juga sangat mudah. Cuma tukar jenis pulangan dalam definisi fungsi kepada jenis nilai yang dikembalikan sebenar. Berikut ialah kod yang diubah suai:

// 函数定义
double add(int a, int b)
{
    return a + b + 0.5;
}

// 调用函数
double result = add(1, 2);
Salin selepas log masuk

Dalam kod di atas, kami menukar jenis pulangan fungsi tambah daripada int kepada berganda, supaya nilai berganda a+b+0.5 boleh dikembalikan dengan betul. Apabila memanggil fungsi, kami juga menetapkan nilai pulangan kepada hasil pembolehubah jenis berganda, supaya tidak akan ada masalah ketidakpadanan jenis.

Dalam pengaturcaraan sebenar, adalah perkara biasa bahawa jenis pulangan fungsi tidak sepadan dengan jenis nilai pulangan sebenar. Apabila menghadapi situasi ini, kita hanya perlu memberi perhatian untuk menukar jenis pulangan dalam definisi fungsi kepada jenis nilai pulangan sebenar. Ini boleh mengelakkan masalah ketidakpadanan jenis dan menjadikan program lebih stabil dan boleh dipercayai.

Atas ialah kandungan terperinci Ralat C++: Jenis pemulangan fungsi tidak sepadan dengan jenis nilai pemulangan sebenar Bagaimana saya perlu mengubahnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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