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 :

Tableau + class C++


Sujet :

C++

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mai 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 1
    Par défaut Tableau + class C++
    j'ai 2 classe : Porte et Group de porte .
    La classe Groupe de portes doit stocker un nombre fini d’objets de la classe Porte.
    Spécification de la classe GroupeDePortes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    classe GroupeDePortes
    { private :
       string nom;
       int nbPP;	 //nbs porte possible (max)
       porte tabDePorte[10];
    public:
    ……};
    le prb est comment ajoutez une porte au groupe, connaître le nombre de porte effectivement associée au groupe,
    mercci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Il est probable que je n'ai pas tout compris.
    Vous parlez de classe, ne serait-ce pas tout simplement des structures? Il est vrai que la différence est assez faible, mais voilà comment on pourrait voir les choses.
    1- défivirion de la structure PORTE
    typedef struct PORTE
    {
    float longueur, largeur;
    string Materiau;
    }TabPorte;
    typedef TabPorte *ptrUnePorte;

    2- définition de la chasse ListePorte
    classe ListePorte
    {
    int NbElm();
    int AddElm(void *Objet);
    void *LitObjet(int index);
    etc.
    public:
    ListePorte(); // le constructeur
    ~ListePorte(); // le destructeur
    };

    Dans le programme
    ListePorte *TabPorte = new ListePorte();
    ptrUnePorte UnePorte= new PORTE();
    TabPorte->AddElm(UnePorte);
    fprintf("FIC","La table contient %d portes\n",TabPorte->NbElm());

    J'ai bien conscience de ne pas avoir répondu à votre question, puisque la réponse est dans la fonction membre AddElm(void*)
    Il n'est pas logique de dimensionner le tableau tabDePorte. Justement l'avantage du C++ est de pouvoir créer un élément et l'ajouter à une liste.
    Cette liste peut être de toute sorte de forme, liste chainée, tableau à dimensionnement variable etc.

    Personnellement, j'utilise les deux solutions suivant les cas. La première (liste chainée) est la plus économique et la plus rapide si la probabilité de la parcourir entièrement et dans le même sens est forte.
    La seconde est plus souple, surtout si on utilise une classe écrite pas des spécialistes.

  3. #3
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Je rejoins ce que dit Pierre Dolez au niveau des listes, en effet si ne connais pas le nombre de portes que tu vas stocker, le mieux est d'utiliser std::vector .

    Ensuite, pour la classe "Porte", l'utilisation d'une classe se justifie si on doit effectuer une action sur la porte (par exemple "Ouvrir", "Fermer") ...

Discussions similaires

  1. [PHP 5.3] Souci tableau Class & Interface
    Par ETVigan dans le forum Langage
    Réponses: 1
    Dernier message: 25/05/2010, 10h36
  2. Initialiser tableau class constructeur
    Par dédé dans le forum C++
    Réponses: 3
    Dernier message: 21/11/2006, 13h43
  3. tabeau de classe = tableau de classe
    Par Bason_sensei dans le forum C++
    Réponses: 25
    Dernier message: 12/10/2005, 13h01
  4. Réponses: 3
    Dernier message: 19/05/2005, 10h46
  5. Classe de tableau évoluée
    Par numberwan dans le forum Débuter
    Réponses: 2
    Dernier message: 03/04/2003, 16h15

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