Maison >développement back-end >C++ >Erreur de compilation C++ : Le type de retour de la fonction ne correspond pas au type de retour déclaré par la fonction. Comment le résoudre ?

Erreur de compilation C++ : Le type de retour de la fonction ne correspond pas au type de retour déclaré par la fonction. Comment le résoudre ?

WBOY
WBOYoriginal
2023-08-21 21:45:052749parcourir

En programmation C++, il s'agit d'une erreur de compilation courante que le type de retour d'une fonction ne correspond pas au type de retour de la déclaration de fonction. Cette erreur se produit généralement parce que les développeurs ont des incohérences dans le processus de déclaration et de définition des fonctions, telles qu'une incompatibilité de type de retour de fonction, une incompatibilité de numéro de paramètre ou de type, etc. Ces erreurs empêchent souvent la compilation ou l'exécution correcte du programme, ce qui entraîne des problèmes considérables lors du développement et de la maintenance du programme.

Alors, pourquoi une erreur de compilation se produit-elle si le type de retour d'une fonction ne correspond pas au type de retour déclaré par la fonction ? En effet, le compilateur C++ détermine le type de retour de la fonction en fonction de la déclaration de la fonction. Si le type de retour de la fonction est incohérent avec le type déclaré, le compilateur ne peut pas déterminer le type de retour de la fonction, ce qui entraîne une erreur de compilation. Par conséquent, afin de résoudre cette erreur, nous devons considérer les deux aspects suivants :

  1. Vérifiez si les types de retour dans la déclaration et la définition de la fonction sont cohérents

Lorsque les types de retour dans la déclaration et la définition de la fonction sont incohérents, le compilateur générera une erreur. Par conséquent, lors de la résolution de ce type d'erreur, nous devons d'abord vérifier si le type de retour dans la déclaration et la définition de la fonction est cohérent. S'il est incohérent, nous devons modifier le type de retour dans la définition de la fonction pour le rendre identique au type de retour dans la déclaration.

Par exemple, dans le code suivant, le type de retour de la déclaration de fonction est int, mais le type de retour dans la définition de la fonction est void, ce qui provoquera une erreur de compilation :

// 函数声明
int add(int a, int b);

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

La définition correcte de la fonction devrait ressembler à ceci :

int add(int a, int b) {
    int c = a + b;
    return c;
}
  1. Vérifiez la fonction L'instruction de retour et le type de valeur de retour sont-ils cohérents ? En plus de l'incompatibilité du type de retour, le compilateur générera également une erreur si l'instruction de retour et le type de valeur de retour de la fonction sont incohérents. Par conséquent, lors de la résolution de cette erreur, nous devons vérifier si l'instruction return et le type de valeur de retour de la fonction sont cohérents. S'il est incohérent, nous devons modifier l'instruction return ou le type de valeur de retour pour le rendre cohérent.
Par exemple, dans le code suivant, le type de valeur de retour de la fonction est int, mais l'instruction return renvoie une valeur de type char, ce qui provoquera également une erreur de compilation :

int get_value() {
    char ch = 'A';
    return ch;
}

L'implémentation correcte de la fonction devrait être comme ceci :

int get_value() {
    int i = 10;
    return i;
}

En résumé, lorsque nous rencontrons une erreur de compilation où le type de retour d'une fonction ne correspond pas au type de retour de la déclaration de fonction, nous devons d'abord vérifier si les types de retour dans la déclaration et la définition de la fonction sont cohérents. S'ils sont cohérents mais qu'il y a toujours des erreurs, vous devez vérifier si l'instruction return et le type de valeur de retour de la fonction sont cohérents. Ce n'est que lorsque les deux correspondent que le compilateur peut déterminer correctement le type de retour de la fonction, afin que l'ensemble du programme puisse se compiler et s'exécuter correctement.

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