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

SL & STL C++ Discussion :

Vector et pointeurs


Sujet :

SL & STL C++

  1. #1
    Membre averti Avatar de Ardeciel
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 28
    Par défaut Vector et pointeurs
    bonjour !

    voilà, je dispose d'une classe A avec comme variable publique un vecteur V de structure S.
    une autre classe B doit pouvoir acceder à ce vecteur V et le modifier.

    voilà ce que j'ai essayé :
    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
     
    Class A{
    public: std::vector<S> V;
    B monB;
    A(...)//constructeur de A
     
     
    Class B{
    public : std::vector <S> V2;
    B(..., std::vector<S> &V2); //constructeur de B
     
    ...//autres fonctions de B
    }
     
    //corps de A :
     
    A::A(...){
    monB=new B(...,V);
    }
     
    //corps de B
    B::B(...,&V)
    {
    V2=V;
    }
    j'ai déclaré une variable public V2 dans B et je passe V en paramètre dans le constructeur de B.
    V et V2 pointe sur la même adresse, non ?
    pourtant quand je modifie V2 à partir des autres fonctions de B, ce ne se refkète pas dans V...

    comment faire ?

    merci d'avance,

    Ardeciel

  2. #2
    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
    V et V2 pointe sur la même adresse, non ?
    Non, puisque B stocke une copie du tableau. Il faut que B ne garde qu'une référence vers le tableau de A.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class B
    {
    public :
     
        B(vector<S>& V) : V2(V) {}
     
    private :
     
        vector<S>& V2;
    };

  3. #3
    Membre averti Avatar de Ardeciel
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 28
    Par défaut
    nickel, ça marche !

    merci beaucoup !!

    Ardeciel

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

Discussions similaires

  1. Vector et pointeurs
    Par mister3957 dans le forum SL & STL
    Réponses: 3
    Dernier message: 10/06/2007, 01h18
  2. Réponses: 13
    Dernier message: 03/10/2005, 18h06
  3. pb avec vectors de pointeurs
    Par e-teo dans le forum SL & STL
    Réponses: 5
    Dernier message: 27/07/2005, 14h11
  4. Réponses: 8
    Dernier message: 26/08/2004, 18h59
  5. vector de pointeurs sur des objet
    Par jean-bobby dans le forum SL & STL
    Réponses: 26
    Dernier message: 06/08/2004, 14h54

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