Bonsoir,
Je viens de commencer le CPP, la POO et j'ai un problème de compréhension.
Pour comprendre, j'ai créé un exemple simple.
J'ai créé une classe "Vehicule" et une classe "Roue".
La classe Roue contient la pression des pneus. J'ai une méthode qui modifie la pression.
Quand je créé dans le main un objet roue indépendant, tout fonctionne parfaitement.
Un des attributs de la classe Vehicule est une Roue (de la classe Roue).
La création se passe bien, j'arrive à faire afficher la pression de création de la roue de l'objet véhicule, la modification de la pression de la roue de l'objet véhicule semble fonctionner, mais l'affichage donne la valeur initiale, pas la valeur modifiée.
Mon explication n'est pas très claire : ci joint les fichiers (C::Block).
Cela fonctionne, à condition que je créé dans le fichier Vehicule, une méthode qui accède à la méthode de Roue :
Cela ne me parait pas rationnel de devoir recréer toutes les méthodes de Roue dans Vehicule : je suppose qu'on peut y accéder directement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void Vehicule::changerPressionLiee(float variation) { m_roue.changePression(variation); }
Peut être par le biais de pointeurs : j'ai essayé, en vain.
Merci pour éclairage... Et je reste disponible pour toutes précisions complémentaires.
vehicule.cpp
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 #include <string> #include "Vehicule.h" using namespace std; Vehicule::Vehicule() : m_marque("Peugeot"), m_roue() { } string Vehicule::get_marque() const { return m_marque; } Roue Vehicule::get_roue() { return m_roue; } void Vehicule::changerPressionLiee(float variation) { m_roue.changePression(variation); }
Partager