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 :

Différentes classes et fichiers


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 25
    Par défaut Différentes classes et fichiers
    Bonsoir,

    J'ai un petit problème pour faire "interagir" mes classes.

    J'ai deux classes principales. Une troisième est dans l'une des deux principales. Voici un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    ---- Fichier1.hpp ----
    class A
    {
      public:
        class B
        {
            friend class A;
            public:
               B(); // Constructeur
            private:
               int iVar_;
               double dVar_;
        };
        A(); // Constructeur
     
      private:
        C cObject;
    };
     
     
    ---- Fichier2.hpp ----
    class C
    { 
      class Elem 
      {
      public:
        Elem(A::B, Elem *);
        A::B info;
        Elem *suiv;
      };
     
     (....)
    };
    Ensuite dans le fichier dans lequel je mets mon main, j'inclus fichier1.cpp et fichier2.cpp (dans lesquels il y a le code des constricteurs, ect) et lorsque je compile il me dit comme (première) erreur que C n'est pas un type...

    J'espère que c'est assez clair et que vous pourrez m'aider.

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Par défaut
    Inclure des .cpp ? o_O je suppose que tu veux dire inclure des .h ?

    As tu inclus le .h de la classe C dans le .h de la classe A ?

    Dans tous les cas, il serait utile d'avoir ton main et l'erreur exacte générée par le compilo car la ta question est un peu vague

  3. #3
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Déjà dans ton main faut pas inclure le cpp mais le hpp ! Pour ton erreur, juste comme ça, ça m'arrive (comme quoi les types sont pas reconnus), quand j'oublie d'inclure <iostream> .

    Par contre, j'ai jamais vu une classe de classe, ça sert à quoi ? (c'est juste une question comme ça hein

  4. #4
    Membre expérimenté Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Par défaut
    Moi non plus jamais vu la classe de classe! Oo

    Sinon faut faire attention aux éditions de liens... makefile?

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Par contre, j'ai jamais vu une classe de classe, ça sert à quoi ?
    Je suppose que tu parles de "classe imbriquée".
    C'est juste une classe qui est définie dans la portée d'une autre classe. On fait ainsi lorsque la seconde classe a un lien très fort avec la première, par exemple std::list et std::list::iterator. Ce serait comme mettre une classe dans un namespace.

  6. #6
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut Re:
    Dans Fichier1.hpp, tu dois d'abord avertir le compilateur que C le nom d'une classe.
    C'est ce qu'on appelle une déclaration incomplet, très utile dans les fichiers d'en-tête justement.
    De même dans Fichier2.hpp tu dois mettre
    Et je ne suis pas sur mais je pense que dans le même fichier tu dois remplacer tous les A::B par typename A::B.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class X
    {
    public:
        typedef int Entier;
    };
     
    typename X::Entier n;
    J'ai jamais essayé pour les classes parce que j'utilise les namespaces pour ca.

Discussions similaires

  1. Cas où nom de classe différent nom de fichier
    Par totojava dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 08/04/2015, 20h17
  2. [MEX] Fichier générique pour différentes classes
    Par takout dans le forum MATLAB
    Réponses: 9
    Dernier message: 22/06/2012, 12h33
  3. appels de méthodes de différentes classes
    Par seb__ dans le forum Langage
    Réponses: 6
    Dernier message: 12/10/2006, 22h14
  4. Des .class en fichier exe
    Par sandytarit dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2006, 20h24
  5. Variable accessible par différentes classe
    Par jbidou88 dans le forum Langage
    Réponses: 6
    Dernier message: 03/05/2006, 10h27

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