Maison  >  Article  >  développement back-end  >  Résoudre l'erreur de compilation C++ : « types incompatibles », comment la résoudre ?

Résoudre l'erreur de compilation C++ : « types incompatibles », comment la résoudre ?

WBOY
WBOYoriginal
2023-08-25 17:13:032993parcourir

解决C++编译错误:'incompatible types',如何解决?

Résoudre l'erreur de compilation C++ : 'types incompatibles', comment la résoudre ?

Lors du processus de développement du C++, nous rencontrons souvent des messages d'erreur donnés par le compilateur. Un type d’erreur courant est celui des « types incompatibles ». Ce message d'erreur indique qu'il existe une incompatibilité de types dans le programme, qui peut être due à des types de variables incohérents, à des types de paramètres de fonction incompatibles, etc. Cet article présentera plusieurs erreurs courantes d’incompatibilité de type et proposera les solutions correspondantes.

Erreur de type 1 : incompatibilité de type de variable
Une erreur d'incompatibilité de type se produit lorsque nous attribuons une variable à une autre variable d'un type différent. Par exemple, l'attribution d'un entier à une variable chaîne provoquera une erreur « types incompatibles ».

Voici un exemple de code :

int num = 10;
string str = num; // 这里会产生'incompatible types'错误

Pour résoudre cette erreur, une conversion de type est requise. En C++, vous pouvez utiliser la fonction static_cast pour la conversion de type. Dans cet exemple, nous pouvons convertir un entier en chaîne comme suit :

int num = 10;
string str = static_cast<string>(num);

Erreur de type deux : incompatibilité de type de paramètre de fonction
Lorsque nous appelons une fonction, si l'argument entrant est du type de paramètre formel déclaré par la fonction. S'ils le font ne correspondent pas, l'erreur « types incompatibles » se produira également.

Ce qui suit est un exemple de code :

void printNumber(string num) {
    cout << "Number: " << num << endl;
}

int main() {
    int num = 10;
    printNumber(num); // 这里会产生'incompatible types'错误
    return 0;
}

Pour résoudre cette erreur, vous devez vous assurer que le type de paramètre réel transmis est cohérent avec le type de paramètre formel déclaré par la fonction. Dans cet exemple, nous devons convertir l'entier en chaîne comme indiqué ci-dessous :

void printNumber(int num) {
    cout << "Number: " << num << endl;
}

int main() {
    int num = 10;
    printNumber(num);
    return 0;
}

Erreur de type trois : incompatibilité de type de tableau
La même chose apparaîtra lorsque nous essaierons d'attribuer un tableau à un autre tableau d'un type différent "types incompatibles". erreur.

Voici un exemple de code :

int main() {
    int arr1[] = {1, 2, 3, 4, 5};
    char arr2[] = arr1; // 这里会产生'incompatible types'错误
    return 0;
}

Pour résoudre cette erreur, vous pouvez utiliser une boucle pour parcourir le tableau d'origine et copier chaque élément dans le nouveau tableau. Dans cet exemple, nous pouvons copier le tableau d'entiers dans le tableau de caractères comme indiqué ci-dessous :

int main() {
    int arr1[] = {1, 2, 3, 4, 5};
    char arr2[sizeof(arr1)]; // 新数组的大小与原数组一致

    for (int i = 0; i < sizeof(arr1); i++) {
        arr2[i] = static_cast<char>(arr1[i]);
    }

    return 0;
}

Avec l'exemple ci-dessus, nous pouvons voir les méthodes courantes pour résoudre l'erreur "types incompatibles". Qu'il s'agisse d'une incompatibilité de type de variable, d'une inadéquation de type de paramètre de fonction ou d'une inadéquation de type de tableau, tout cela peut être résolu par la conversion de type. Cependant, sachez que les conversions de types peuvent perdre de la précision ou des informations, utilisez donc les conversions de types avec prudence.

Dans le développement C++, maîtriser ces méthodes pour résoudre les erreurs de « types incompatibles » aidera à déboguer et à résoudre plus facilement les problèmes d'incompatibilité de types dans le code et à améliorer l'efficacité du développement. J'espère que cet article vous sera utile !

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