Maison  >  Article  >  développement back-end  >  Erreur C++ : le type de retour de la fonction ne correspond pas au type de valeur de retour réel. Comment dois-je le modifier ?

Erreur C++ : le type de retour de la fonction ne correspond pas au type de valeur de retour réel. Comment dois-je le modifier ?

王林
王林original
2023-08-22 09:48:243342parcourir

C++ est un langage de programmation très puissant, mais certaines erreurs se produiront inévitablement lors de l'écriture de programmes. L'un des problèmes courants est la non-concordance entre le type de retour de fonction et le type de valeur de retour réel. Cette erreur est relativement courante, mais elle peut être très frustrante si vous ne savez pas comment la résoudre. Examinons les raisons pour lesquelles cette erreur se produit et comment la corriger avec des exemples spécifiques.

Cause du problème

En C++, le type de retour d'une fonction est déterminé lorsque la fonction est définie. En d'autres termes, vous devez spécifier explicitement le type de retour lors de la définition d'une fonction. Ce type de retour doit être du même type que la valeur finalement renvoyée par la fonction, sinon une incompatibilité de type se produira.

Ce qui suit est un exemple :

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

// 调用函数
int result = add(1, 2);

Dans le code ci-dessus, nous définissons une fonction d'ajout dont le type de retour est de type int. Lors de l'appel de la fonction, nous attribuons la valeur de retour à une variable résultat de type int. Dans ce cas, le type de retour de la fonction est cohérent avec le type de la valeur de retour finale, il n'y a donc aucun problème.

Cependant, si le type de retour que nous spécifions dans la définition de la fonction est incohérent avec le type de la valeur de retour finale, un problème d'incompatibilité de type se produira. Le code spécifique est le suivant :

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

// 调用函数
int result = add(1, 2);

Dans le code ci-dessus, ce que nous retournons. dans la fonction add est a+b+0,5, qui est une valeur de type double. Mais dans la définition de la fonction, notre type de retour est de type int. Cela entraînera des problèmes de non-concordance de types et le compilateur affichera une erreur.

Solution

S'il y a un problème selon lequel le type de retour de la fonction ne correspond pas au type de valeur de retour réel, la solution est également très simple. Changez simplement le type de retour dans la définition de la fonction par le type de la valeur renvoyée réelle. Voici le code modifié :

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

// 调用函数
double result = add(1, 2);

Dans le code ci-dessus, nous avons modifié le type de retour de la fonction add de int à double, afin que la valeur double de a+b+0,5 puisse être correctement renvoyée. Lors de l'appel de la fonction, nous attribuons également la valeur de retour à un résultat de variable de type double, afin qu'il n'y ait pas de problème d'incompatibilité de type.

Dans la programmation réelle, il est courant que le type de retour de fonction ne corresponde pas au type de valeur de retour réel. Lorsque nous rencontrons cette situation, il suffit de faire attention à changer le type de retour dans la définition de la fonction par le type de la valeur de retour réelle. Cela peut éviter les problèmes de non-concordance de types et rendre le programme plus stable et plus fiable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn