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 :

pointeur vers tableau de pointeurs


Sujet :

C++

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 133
    Points : 113
    Points
    113
    Par défaut pointeur vers tableau de pointeurs
    Bonjour à tous. Voilà quelques semaines que j'ai décidé de me mettre au C++, j'ai bien compris les notions de classe et de pointeurs, mais j'ai un problème avec les tableaux alloués avec new ...

    j'ai une classe, pour simplifier, ça ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class ClasseTest
    {
      public :
        ClasseAutre** Tab[];
      . . .
    };
     
    class ClasseAutre
    {
      . . .
    };
    Déjà là je ne sais pas si c'est correct avec **.
    dans une méthode de ClasseTest, je veux allouer un tableau de taille n, de pointeurs vers des instances de ClasseAutre.

    J'ai essayé plein de choses mais j'ai toujours des erreurs.

    En gros, j'aimerais avoir dans ma classe ClasseTest, une variable de type pointeur vers un tableau de pointeurs sur des objets ClasseAutre.

    Pourriez-vous svp m'aider ?

  2. #2
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    Salut,
    Si tu fais du C++, je ne te conseille pas d'utiliser des bêtes tableaux pour stocker tes pointeurs mais plutôt des vectors de la bibliothèque standard.

    http://cpp.developpez.com/faq/cpp/?page=STL#STL_vector

    Le mieux serait d'utiliser aussi les pointeurs intelligents de chez loki ou boost mais comme tu débutes, je ne voudrais pas te noyer sous des notions nouvelles.

    a+

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 133
    Points : 113
    Points
    113
    Par défaut
    merci pour ta réponse, mais je ne souhaite pas utiliser de librairies, je veux faire ça à la main.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Citation Envoyé par Michel_57 Voir le message
    dans une méthode de ClasseTest, je veux allouer un tableau de taille n, de pointeurs vers des instances de ClasseAutre.
    En gros, j'aimerais avoir dans ma classe ClasseTest, une variable de type pointeur vers un tableau de pointeurs sur des objets ClasseAutre.
    Tu es sûr d'avoir besoin d'un pointeur vers un tableau de pointeurs. Un tableau de pointeurs ne te suffirait pas ? Dans ce cas déclare le ainsi.

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 631
    Points : 30 707
    Points
    30 707
    Par défaut
    Salut,
    Déjà, si tu veux disposer d'un tableau de pointeurs alloué dynamiquement, il faut, tout simplement, que le membre de ta classe soit... un pointeur de pointeur.

    Cela prendrait donc la forme de
    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
    class ClasseTest
    {
      public :
        ClasseTest(size_t size): size(size)
        {
            Tab=new ClassAutre*(size);
        }
        ~ClasseTest()
        {
            /* n'oublie pas qu'il y a des chances qu'il faille, aussi, 
             * libérer la mémoire allouée à chaque pointeur ;)
             */
            delete[] Tab;
        }
        ClasseAutre** Tab;
      . . .
    };
    Citation Envoyé par Michel_57 Voir le message
    merci pour ta réponse, mais je ne souhaite pas utiliser de librairies, je veux faire ça à la main.
    Oui, mais là... tu empoigne le marteau pour te taper toi même sur la tête...

    L'avantage de la S(T)L, qui signifie au passage Standard (Tepmlate) Library, c'est qu'elle est... standard (disponible avec tous les compilo récents), très efficace, et ... abondamment testée

    Sans même partir sur l'idée d'utiliser boost ou loki (et pourtant ces bibliothèques valent franchement la peine de s'y attarder ) vouloir programmer en C++ en ne voulant pas utiliser une bibliothèque (quelle qu'elle soit) revient à vouloir rouler en voiture... sans jamais mettre d'essence dans le réservoire.

    L'une des premières choses, qui n'apparait malheureusement dans aucun livre, que l'on apprend en programmation est la maxime
    Pourquoi (mal) faire soi-même ce que d'autres ont déjà (bien) fait ailleurs
    Bien sûr, tu peux décider de te passer de tout, mais, au final, tu rencontrera des problèmes qui ont déjà été rencontrés par maintes personnes à maintes occasions, et qui ont déjà trouvé une solution correcte et efficace...

    Ce qui ne manquera pas de t'emmener irrémédiablement vers des dépassements de délais intolérables

  6. #6
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    En gros, j'aimerais avoir dans ma classe ClasseTest, une variable de type pointeur vers un tableau de pointeurs sur des objets ClasseAutre.
    Pour répondre spécifiquement à cette question, ta variable, ainsi décrite, doit être du type

  7. #7
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 133
    Points : 113
    Points
    113
    Par défaut
    merci koala, ça à l'air de fonctionner ! (tu as fait une faute de frappe c'est des crochets et pas des parenthèses ^^)

    je met résolu, je viendrai réouvrir si jamais il y a un problème car je n'ai pas encore fait tous les tests, mais ça me semble bien parti !


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

Discussions similaires

  1. Réponses: 9
    Dernier message: 07/07/2008, 12h43
  2. Réponses: 4
    Dernier message: 04/02/2007, 01h06
  3. Réponses: 2
    Dernier message: 12/10/2006, 21h28
  4. [VB.NET] Pointeur vers tableau
    Par b_lob dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/08/2006, 17h06
  5. convertion pointeur vers tableau
    Par gdpasmini dans le forum C++
    Réponses: 2
    Dernier message: 30/03/2006, 01h34

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