Problème getter/setter et héritage
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:
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;
} |