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 :
Il faut savoir que ValeurEntiere, ValeurReelle et ValeurChaine héritent de Valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()); }
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 !![]()
Partager