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 :

classe et vector


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : fonctionnaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 6
    Points
    6
    Par défaut classe et vector
    Bonjour,

    Je suis débutant en programmation et je suis un cours dans le quel on demande de créer une classe Vehicule en suite de une classe Garage pour gérer les éléments de type Vehicule via des pointeurs, la classe Garage doit avoir comme attribut un tableau dynamique contenant des pointeurs sur des élément de type Vehicule

    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
    class Vehicule
    {
    public:
        Vehicule (int prix=10000, std::string dateFabrication="01/01/1960");
        virtual void affiche() const;
        virtual ~Vehicule();
    protected:
        int m_prix;
        std::string m_dateFabrication;
    };
     
    class Garage
    {
    public:
        Garage (Vehicule* vehicule);
        void affiche() const;
        void ajouterElement(Vehicule* vehicule);
        void suprimerElement(Vehicule* vehicule);
        virtual ~Garage();
    private:
        std::vector<Vehicule*> m_listeVehicules;
    };
    J'ai rencontré un problème lors de l'écriture du constructeur de Garage, je suis vraiment bloqué. J'ai essayé de faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Garage::Garage(Vehicule* vehicule)
    {
        m_listeVehicules.push_back(new vehicule);
    }
    ou comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Garage::Garage(Vehicule* vehicule)
    {
        m_listeVehicules.push_back(vehicule);
    }
    et plein d'autres façons mais j'arrive pas à trouver la bonne solution.
    Est ce que quelqu'un aurait la gentillesse de m'aider tous en sachant que je commence à apprendre le c++ depuis 2 semaines seulement.
    Merci de me répondre

  2. #2
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Hello,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Garage::Garage(Vehicule* vehicule)
    {
        m_listeVehicules.push_back(vehicule);
    }
    C'est correct ça, mais ça t'oblige à donner un véhicule quand tu construits un garage (peut être que c'est ce que tu veux ?).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Vehicule v;
    Garage g(&v);
    Si tu veux pouvoir créer un garage sans lui fournir de véhicule, supprime simplement le paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Garage::Garage() { }
     
    Garage g;

  3. #3
    Futur Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : fonctionnaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Merci pour votre aide, mais j'ai deja essaye cette solution en tous cas j'ai trouve une autre façon de le faire. Merci encore.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Compile en C++11 et prend un unique_ptr<Vehicule> en paramètre.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. Utilisation de la class std::vector est très lourde!
    Par mathro dans le forum SL & STL
    Réponses: 35
    Dernier message: 01/05/2013, 23h15
  2. [debutant] représentation vector dans diagramme de class
    Par onap dans le forum Diagrammes de Classes
    Réponses: 5
    Dernier message: 23/12/2004, 22h01
  3. [Perf]Htable vs class Vector
    Par nicoo dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 14/11/2004, 10h11
  4. [Vector] classe Vector et exception
    Par Nanoua dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 23/04/2004, 12h37

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