Maison  >  Article  >  développement back-end  >  Comment résoudre l'erreur de compilation C++ : « redéfinition de la « fonction » ?

Comment résoudre l'erreur de compilation C++ : « redéfinition de la « fonction » ?

王林
王林original
2023-08-27 14:27:131893parcourir

解决C++编译错误:'redefinition of 'function'',如何解决?

Résoudre l'erreur de compilation C++ : 'redéfinition de 'fonction', comment la résoudre ?

C++, en tant que langage de programmation puissant, est souvent largement utilisé dans le développement de logiciels. Cependant, écrire des programmes C++ sans erreur n’est pas facile pour les débutants. L'une des erreurs courantes est la « redéfinition de la « fonction » », qui est une erreur de redéfinition de fonction. Dans cet article, j'expliquerai les causes de cette erreur et comment y remédier.

Raison de l'erreur :
Lorsque nous définissons une fonction du même nom dans un programme C++, le compilateur signalera une erreur de "redéfinition de 'fonction'". Cette erreur se produit généralement dans les situations suivantes :

  1. La même fonction est définie plusieurs fois dans le même fichier source.
  2. La même fonction est définie dans différents fichiers sources, et ces fichiers sources sont liés dans le même programme.

Regardez l'exemple ci-dessous :

// example.cpp

int add(int a, int b)
{
    return a + b;
}

int add(int a, int b) // 重复定义相同的函数
{
    return a + b;
}

int main()
{
    int result = add(3, 4);
    return 0;
}

Dans l'exemple ci-dessus, nous avons défini une fonction nommée "add" deux fois dans le même fichier source. Lorsque nous essayons de compiler ce programme, nous rencontrons une erreur de « redéfinition de 'ajouter' ».

Solution :
Il existe deux manières principales de résoudre les erreurs de redéfinition de fonction : l'une consiste à éviter de définir la même fonction plusieurs fois dans le même fichier source ; l'autre consiste à utiliser des déclarations de fonction lors de la définition de la même fonction dans différents fichiers source et en-tête ; fichiers pour éviter les conflits.

  1. Évitez de définir plusieurs fois la même fonction dans le même fichier source.
// example.cpp

int add(int a, int b)
{
    return a + b;
}

int main()
{
    int result = add(3, 4);
    return 0;
}

Le code ci-dessus a corrigé l'erreur de redéfinition de la fonction. Nous gardons simplement une définition de fonction et l’appelons dans la fonction principale.

  1. Utilisez les déclarations de fonction et les fichiers d'en-tête lorsque vous définissez la même fonction dans différents fichiers source.

Tout d’abord, créons deux fichiers sources : example.cpp et add.cpp.

// add.h

#ifndef ADD_H
#define ADD_H

int add(int a, int b);

#endif
// add.cpp

#include "add.h"

int add(int a, int b)
{
    return a + b;
}
// example.cpp

#include "add.h"

int main()
{
    int result = add(3, 4);
    return 0;
}

Dans l'exemple ci-dessus, nous avons utilisé un fichier d'en-tête et une déclaration de fonction pour résoudre l'erreur de redéfinition de la fonction. Dans le fichier d'en-tête add.h, nous définissons la déclaration de la fonction add et utilisons un préprocesseur conditionnel pour éviter des inclusions répétées.

Dans le fichier source add.cpp, nous implémentons la définition spécifique de la fonction add.

Enfin, dans le fichier source example.cpp, nous incluons le fichier d'en-tête add.h et pouvons utiliser la fonction add sans erreurs de redéfinition de fonction.

Résumé :
L'erreur de redéfinition de fonction est l'une des erreurs courantes dans le développement C++. Pour éviter cette erreur, nous devons éviter de définir plusieurs fois la même fonction dans le même fichier source et utiliser des déclarations de fonction et des fichiers d'en-tête pour résoudre les conflits causés par la définition de la même fonction dans différents fichiers source. De cette façon, nous pouvons écrire des programmes C++ de haute qualité et sans erreur.

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