tbpacker
Messages postés10Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention17 juin 2009
-
18 janv. 2008 à 10:08
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 2010
-
18 janv. 2008 à 19:45
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?
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 18 janv. 2008 à 13:20
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).
tbpacker
Messages postés10Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention17 juin 2009 18 janv. 2008 à 13:42
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.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 18 janv. 2008 à 19:45
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.