Bonjour,
J'ai un petit problème sur un code assez court, je tente de modifier (via un setter) des attributs de ma classe mère, mais la répercussion (vérification via un getter) ne semble pas se faire.
Il est évident que je fais mal quelque chose niveau code, ou même que ma compréhension de la logique POO Héritage doit être érronnée, pourriez vous me dire ou se situe le soucis ?
Merci d'avance à tous !
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 #include <iostream> #include <vector> using namespace std; // Base class class Shape { public: void setWidth(int w) { width = w; } void setHeight(int h) { height = h; } int get_width () { return width; } protected: int width; int height; }; // Derived class class Rectangle: public Shape { public: int getArea() { return (width * height); } }; int main(void) { Rectangle Rect; Rect.setWidth(5); Rect.setHeight(7); vector <Shape> shapes; // Je crée un vecteur de formes qui receuillera surement des triangles, losanges etc... Il servira a pouvoir être parcouru via une boucle quelque soit la forme contenue shapes.push_back(Rect); std::cout << shapes[0].get_width() << std::endl; Rect.setWidth(1000); // Modification de la width std::cout << shapes[0].get_width() << std::endl; // Le cout m'affiche 5 T_T return 0; }
Partager