Portée globale typedef compilation separée [Résolu]

Signaler
Messages postés
10
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
17 juin 2009
-
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
-
Bonjour a tous,

mon probleme est le suivant:
Ou placer un typedef vector VEC dans un code objet comprenant:
-main.cpp
-matrice.cpp
-matrice.h

sachant que les 3 fichiers font appel a cette "surdeclaration" de type?

-le compilo me renvoie une erreur sur les membres public de la classe meme si je place cette declaration avant la declaration de classe.(cela marchait qd tt était regroupé ds le main)

main.cpp:

#include<vector>
#include "matrice.h"
using namespace std;

int main()
{
                     blabalabla qui utilise VEC et la classe matrice;
                     return 0;
}

matrice.cpp:

#include "matrice.h"

matrice::matrice (void)                         //constructeur par defaut
{      
                      VEC blabla;
}

autres constructeurs et definitions de fonctions membres faisant appel à VEC

matrice.h:

#ifndef MATRICE_H
#define MATRICE_H

typedef vector VEC;     //g sans doute pas le droit de le declarer ici?

class matrice
{
           private:
                    blabla
           public:
                      VEC V;
                      VEC fonction(void);
                       matrice(void);      //construct
};

#endif
  

et la......ERREUR!!!!

si quelqun pouvait m'aider?merci d'avance;

3 réponses

Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Faut que t'inclues vector.h dans matrice.h juste avant de faire ton typedef, entête de fichier
(du coup plus besoin d'inclure vector.h dans les autres fichiers).
Messages postés
10
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
17 juin 2009

Merci bcp!
Il fallait placer le vector.h ou tu m'avais dit mais aussi redeclarer un espace de nom standard.Apparament lors d'une compilation séparée chaque fichier un espace de nom propre.

ciao

  
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
En fait considère que les fichiers .c ou .cpp sont indépendants niveau déclarations; les .h c'est juste du texte inséré à l'endroit où tu mets ton #include.