Merci pour vos réponses.
J'avais réussi avec une fonction dans option :
virtual const double prix(double prix) const = 0;
que je dérivais par exemple dans Materiau par :
1 2
|
const double prix(double prix) const { prix*_majoration; } |
Ca marchait bien, enfin ça donnait le resultat espéré.
Seulement je me suis rendu compte après, que si je mettais un meuble comme paramètre de la fonction prix dans Option, je pouvais accéder au prix du meuble justement.
Ainsi ma fonction devient comme ça :
1 2
|
virtual const double prix(const Meuble m) const = 0; |
Et dans Materiau :
1 2
|
const double prix(const Meuble m) const { return m.getPrix()*_majoration; } |
Dans meuble pour calculer le prix final je fais ceci :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
const double Meuble::prixFinal() const
{
double somme = 0;//
if (_lesOptions.size() >= 1)
{
for (int i(0); i < _lesOptions.size(); i++)
{
somme += _lesOptions[i]->prix(this);
}
}
else
{
somme = _prix;
}
return somme;
} |
Seulement maintenant j'ai un nombre incalculable d'erreurs, je ne vois pas ce que je fais de mal pourtant ?
Partager