Bonjour,
J'ai une classe contenant certains opéateurs surchargés, que je dérive en une autre classe.
Seulement les opérateurs dans la classe dérivée ne fonctionnent pas comme ils devraient, alors qu'ils fonctionnent impeccablement dans la classe de base.
Auriez-vous une idéé sur l'origine du problème ?
Voici les détails :
Je définis dans ma classe de base les opérateurs que voici :
et cela fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 virtual Vecteur& operator + (Vecteur); virtual Vecteur& operator = (const Vecteur&);
Dans mon programme principal main je peux très bien écrire (pour des vecteurs v, w et z) :
J'ai ensuite une classe polynôme, qui dérive (publiquement) de vecteur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 v = w; w = (z + v);
Je ne prends pas la peine de redéfinir les opérateurs en question vu que leur fonctionnement est en tout point identique.
Cependant pour trois polynômes a,b,c je peux écrire :
mais si je tape :
Code : Sélectionner tout - Visualiser dans une fenêtre à part a = b;
le compilateur me dit qu'il ne trouve pas le code de la fonction = correspondante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part a = (b + c);
Cela me dépasse que cela fonctionne dans la classe de base mais pas dans la classe dérivée ...
merci![]()
Partager