Bonjour
Je débute en C++ alors je ne sais pas si c'est la bonne manière de faire les choses. Je voudrais créer un .h pour chaque classe, Complex et Matrix. J'ai donc deux fichiers :
complex.h et matrix.h . Ensuite, j'ai le contenu des méthodes de chacune des classes dans deux fichiers : complex.cpp et matrix.cpp
Le problème, c'est que ma classe Matrix contient un attribut de type Complex. Et là, ça plante. En clair, dans mon fichier Matrix.h, j'ai quelque chose comme ça:
Je programme avec Visual C++ Pro 2005. Et l'erreur à la compilation est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class Matrix { typedef Complex *line_t ; // LIGNE 12 line_t *lines ; // LIGNE 13 // ... }
Si au début de Matrix.h , je fais :1>matrix.cpp
matrix.h(12) : error C2143: syntax error : missing ';' before '*'
matrix.h(12) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
matrix.h(12) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
matrix.h(13) : error C2143: syntax error : missing ';' before '*'
matrix.h(13) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
matrix.h(13) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>main.cpp
j'ai d'autres erreurs, notamment une redéfinition de ma classe... puisque j'inclus complex.h dans complex.cpp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include "complex.h"
Bref, je ne vois pas comment faire. Une solution serait de mettre la définition des deux classes dans un même entête .h mais je préfère un fichier par classe.
Nas'
Partager