gniouf63
Messages postés2Date d'inscriptionmardi 28 novembre 2006StatutMembreDernière intervention18 janvier 2007
-
17 janv. 2007 à 22:20
gniouf63
Messages postés2Date d'inscriptionmardi 28 novembre 2006StatutMembreDernière intervention18 janvier 2007
-
18 janv. 2007 à 12:20
Bonjour à tous
j'espère ne pas mettre trompé de thème voila je developpe sous
microsoft visual c++6 et je me demandais si il était possible de
surcharger virtuellement l'opérateur de sortie << voila un apercu
de mon code :
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 18 janv. 2007 à 01:56
Pour des questions de lisibilité, mieux vaut toujours mettre le virtual meme dans la classe fille, rien que pour bien voir que la fonction est également présente dans la classe mère.
Mais dans ton cas, je vois pas comment ca pourrait marcher. L'opérateur que tu as créés n'a rien a voir avec celui que tu utilises.
Mere object;
object << Mere ou Fille;
Toi tu as la sortie a gauche et la classe Mere a droite, et dans ta classe tu définies l'inverse. Faut créer une fonction externe, amie ou pas:
friend std::stream & operator << (const Mere & object);
friend std::stream & operator << (const Fille & object);
mais tu auras pas de polymorphisme la dessus, donc un object Fille converti en Mere, ne fonctionnera pas exactement comme voulu avec l'opérateur <<.
Au lieu d'utiliser l'opérateor <<, mieux vaut utiliser une fonction membre virtuelle pour faire jouer le polymorphisme.