Manipulation de types de classes, cast et polymorphisme
Bonjour tout le monnnnnnnde !! :)
Ma question porte aujourd'hui sur les cast et les types des classes.
J'aimerai réduire ce code pas très joli en une seule instruction plus élégante :
Code:
1 2 3 4 5 6 7 8 9 10 11
| Valeur* valeur = 0;
if (typeid(*og)==typeid(ValeurEntiere)) {
valeur = new ValeurEntiere( ((ValeurEntiere *)og)->getValeur() + ((ValeurEntiere *)od)->getValeur());
}
else if (typeid(*og)==typeid(ValeurReelle)) {
valeur = new ValeurReelle( ((ValeurReelle *)og)->getValeur() + ((ValeurReelle *)od)->getValeur());
}
else { //cest une chaine
valeur = new ValeurChaine( ((ValeurChaine *)og)->getValeur() + ((ValeurChaine *)od)->getValeur());
} |
Il faut savoir que ValeurEntiere, ValeurReelle et ValeurChaine héritent de Valeur
J'ai pensé créer une méthode polymorphe dans chacune de ces classes ou redéfinition de l'opérateur "+".
Avez-vous une manière élégante de faire ceci ?
Merci d'avance ! ;)