Problème de multi-inclusion (erreur lnk2005)

Résolu
michelangelo71 - 31 août 2012 à 19:18
 michelangelo71 - 31 août 2012 à 21:16
Bonjour,

Je débute en C++ sous VisualStudio 2010 et j'ai un souci de multi-inclusion de variable lorsque j'ai plusieurs fichiers : j'obtiens une erreur lnk2005.

Voici mes codes très simples, vu que je suis en phase d'apprentissage. Mais je ne vois pas ce qui est faux.
Précision : j'ai créé un projet vide, sans préprocesseur (ou autre).

MAIN.CPP
#include "main.h"
#include "moyenne.h"

void main()
{
for (int i= 0 ; i<taille ; i++)
{
tableau[i]=i*i;
cout << "tableau, position " << i << " valeur " << tableau[i] << endl;
}

moyenne = Fonction_moyenne(tableau,taille);
cout << "moyenne = " << moyenne << endl;

system("PAUSE");
}


MAIN.H
#ifndef MAIN_H
#define MAIN_H

#include 
using namespace std;

int const taille(5);
double tableau[taille];

#endif


MOYENNE.CPP
#include "moyenne.h"

double Fonction_moyenne(double aTableau[],int bTailleTableau)
{
for (int j =0 ; j
using namespace std;

double moyenne(0);
double Fonction_moyenne(double tableau[],int tailleTableau);

#endif




Visual me donne lors de la génération :
Erreur 1 error LNK2005: "double moyenne" (?moyenne@@3NA) déjà défini(e) dans main.obj

Si quelqu'un peut me conseiller, je l'en remercie.

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 août 2012 à 21:05
double moyenne = 0.0;
va dans le CPP;

dans le H, on met:
extern double moyenne;


ciao...
BruNews, MVP VC++
3
michelangelo71
31 août 2012 à 21:16
Merci beaucoup . C'était bien ça les soucis.
Notamment le "extern" que je n'avais pas encore vu.
0
Rejoignez-nous