IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Organisation des .h et .cpp


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Par défaut Organisation des .h et .cpp
    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:

    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
    // ...
    }
    Je programme avec Visual C++ Pro 2005. Et l'erreur à la compilation est :
    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
    Si au début de Matrix.h , je fais :
    j'ai d'autres erreurs, notamment une redéfinition de ma classe... puisque j'inclus complex.h dans complex.cpp.

    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'

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577

  3. #3
    Membre émérite
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Par défaut
    Hum, j'ai pourtant passé du temps dans la FAQ et ce lien m'est passé sous les yeux
    Donc la solution est la déclaration anticipée. Et ça marche
    Merci !

    Nas'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Conception] - Organisation des pages pour une requete.
    Par ShinJava dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 24/10/2005, 15h33
  2. [GUI]Organisation des classes
    Par c-top dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 04/03/2005, 17h46
  3. Organisation des classes
    Par R3iTt0R dans le forum Langage
    Réponses: 2
    Dernier message: 02/06/2004, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo