Les variables globales en C++
Je sais pas bien d'utiliser des variables globales en C++, c'est pas objet et tout... Mais là je suis obligé. Je n'obtient que des erreurs à l'utilisation de variable globale.
Donc plutôt qu'une grande explication j'ai résumé mon problème dans un exemple simple :
classeVisibility.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
#ifndef __CLASSE_VISIBILITY_H__
#define __CLASSE_VISIBILITY_H__
class MaClasse {
int j;
public:
MaClasse(int i);
void Fonction();
};
J'obtien
#endif /*__CLASSE_VISIBILITY_H__*/ |
classeVisibility.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
#include <iostream>
using namespace std;
#include "classeVisibility.h"
MaClasse::MaClasse(int i){
j = i;
}
void MaClasse::Fonction(){
cout << "Entrée dans la fonction" << j <<endl;
} |
main.cpp
Code:
1 2 3 4 5 6 7 8 9
|
#include "classeVisibility.h"
MaClasse classe(0) ;
char toto;
main(){
classe.Fonction();
} |
Les erreurs obtenue sont :
Code:
1 2 3 4 5 6 7 8 9 10
|
g++ -dbx -c -o testCompilOnly/man.o testCompilOnly/main.cpp
g++ -dbx -c -o testCompilOnly/classeVisibility.o testCompilOnly/classeVisibility.cpp
g++ -dbx -o test testCompilOnly/man.o testCompilOnly/classeVisibility.o
/usr/lib/gcc/i586-mandriva-linux-gnu/4.0.1/../../../crt1.o: In function `_start':
../sysdeps/i386/elf/start.S:115: undefined reference to `main'
testCompilOnly/man.o:(.ctors+0x0): undefined reference to `global constructors keyed to classe'
testCompilOnly/classeVisibility.o:(.ctors+0x0): undefined reference to `global constructors keyed to _ZN8MaClasseC2Ei'
collect2: ld returned 1 exit status
make: *** [accueil] Erreur 1 |
ça une journée que j'ai ces erreurs de linkage et je n'arrive vraiment pas en voir la source y a une bonne âmes altruiste qui pourrait m'aider à résouvdre mon problème ?