Erreur de redefinition de classe toupie

Erreur de redefinition de classe toupie

par Roman Eugène Michel Stemplowski,
Number of replies: 1

Bonjours,


J'essaye de compiler le programme testIntegrateur.cc dans lequel je fais en particulier les include "Toupie.h", "Integrateur.h", déclare une Toupie et un Integrateur et appelle la méthode d'évolution de l'intégrateur sur la toupie. Cependant en entrant le commande de compilation suivante dans le terminal Windows :

g++ -Wall -o testIntegrateur testIntegrateur.cc Integrateur.h Integrateur.cc -std=c++17

qui pour d'autres programmes fontionnait sans aucun problèmes, le compilateur me renvoie l'erreur suivante :

In file included from testIntegrateur.cc:3:
Toupie.h:7:7: error: redefinition of 'class Toupie'
    7 | class Toupie
       |           ^~~~~~
In file included from Integrateur.h:2,
                           from testIntegrateur.cc:2:
Toupie.h:7:7: note: previous definition of 'class Toupie'
    7 | class Toupie
       |           ^~~~~~

Le problème est que la redefinition de la classe toupie dans toupie.h correspond à la previous definition de la classe Toupie. Je ne comprends ainsi pas d'où provient l'erreur.

In reply to Roman Eugène Michel Stemplowski

Re: Erreur de redefinition de classe toupie

par Fares Ahmed,

Vous avez probablement oublié un #pragma once au début de votre fichier Toupie.h, ce qui fait que ce fichier se retrouve importer deux fois : une fois dans Integrateur.h et une fois dans testIntegrateur, d'où les erreurs de redéfinition.