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 :

vecteur de vecteur et pointeurs


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 18
    Points : 16
    Points
    16
    Par défaut vecteur de vecteur et pointeurs
    Bonjour,

    Je débute le c++ et je me heurte a pleins de problèmes

    Premièrement j'aimerais déclarer un vecteur de vecteur contenant des instances d'une classe que j'ai crée :

    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
     
    #include <stdlib.h>
    #include <vector>
     
    #include "Slot.h"
     
     
     
    class Grille
    {
     
       public:
     
       Grille();
     
       ~Grille(){};
     
       private:
     
       vector<vector<Slot> > matrice;
     
    };
    g++ me renvoi un magnifique message d'erreur:
    Grille.h:27: error: ISO C++ forbids declaration of ‘vector’ with no type
    Grille.h:27: error: expected ‘;’ before ‘<’ token

    C'est surement une erreur stupide mais je ne suis pas du tout familier avec le langage


    J'aimerais aussi posséder un pointeur vers un membre d'une énumération

    Par exemple enum Couleur {ROUGE = 0, BLEU = 1};

    if (*ptr == ROUGE) {...}

    mais je ne vois pas comment mettre l'adresse de l'un des membres dans le pointeur. Petite précision la classe contenant ce pointeur ne dois contenir que cette variable et aucune autre.


    Je suis obligé de faire comme ceci (consignes très claires) une réponse m'expliquant une autre manière de faire plus élégante ne me sera d'aucune utilité immédiate malheureusement.

    Merci d'avance

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    peut-être en ajoutant le namespace std:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::vector< std::vector< Slot > > ...
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Serbie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 42
    Points : 55
    Points
    55
    Par défaut
    Ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    using std::vector;
    Les détails de namespaces sur http://www.cplusplus.com/doc/tutorial/namespaces.

    Les énumérations sont les constants et je doute qu'il est possible (facilement) de faire chose comme ça. Elles sont les types integrales, donc les conversions differentes sont possible (ça fait ta demande de contenir une valeur isolée difficile de résoudre). Peut-être il est mieux de créer une classe qui vérifiera les valeurs que tu la donne.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    En effet avec using namespace std cela marche merci

    En ce qui concerne le pointeur tant pis pour les consignes je me débrouillerai autrement
    Merci pour les réponses !

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Les valeurs d'une enum sont des valeurs. On ne pointe pas sur une valeur, mais sur une variable. On ne peut pas avoir par exemple un pointeur sur 42. On peut avoir un pointeur sur une variable qui vaut à un certain moment 42.

    Du coup, je ne vois pas trop ce que tu voulais faire...

    A noter dans d'autres langages (Java, par exemple) les énumérations sont gérées totalement différemment. Elles ne sont pas des valeurs, mais des instances constantes d'une classe. On peut donc prendre leur adresse, et les gérer par pointeur. Peut-être veux-tu un mécanisme semblable en C++ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Couleur
    {
    public:
      static Couleur const ROUGE;
      static Couleur const BLEU;
    }
     
    Couleur const*maCouleur = &Couleur::ROUGE;
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Les valeurs d'une enum sont des valeurs. On ne pointe pas sur une valeur, mais sur une variable. On ne peut pas avoir par exemple un pointeur sur 42. On peut avoir un pointeur sur une variable qui vaut à un certain moment 42.

    Du coup, je ne vois pas trop ce que tu voulais faire...

    A noter dans d'autres langages (Java, par exemple) les énumérations sont gérées totalement différemment. Elles ne sont pas des valeurs, mais des instances constantes d'une classe. On peut donc prendre leur adresse, et les gérer par pointeur. Peut-être veux-tu un mécanisme semblable en C++ :
    Mon problème était de faire en sorte qu'une classe ne possède qu'une variable, celle-ci devant être un pointeur vers une variable représentant une valeur énumération discrète, je ne fais pas ça pour rire c'est pour un travail si ça ne tenait qu'à moi j'aurais fait quelque chose de différent (du moins j'aurais essayé je trouve le c++ horriblement compliqué).

    Je pense que je vais créer une variable contenant ce que je veux et passer le pointeur de cette variable en argument

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

Discussions similaires

  1. Vecteur d'objets et pointeur
    Par zebulon36 dans le forum Débuter
    Réponses: 1
    Dernier message: 10/06/2013, 23h49
  2. Vecteur de vecteur de vecteur ?
    Par oodini dans le forum C++
    Réponses: 22
    Dernier message: 03/10/2011, 13h12
  3. Vecteurs de vecteurs de vecteurs
    Par El Charpi dans le forum C++
    Réponses: 4
    Dernier message: 11/01/2010, 21h29
  4. Vecteur de vecteurs et itérateurs
    Par vdumont dans le forum C++
    Réponses: 7
    Dernier message: 16/05/2006, 17h10
  5. Vecteurs de vecteurs ?
    Par Edouard Kaiser dans le forum C++
    Réponses: 16
    Dernier message: 02/05/2005, 14h39

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