[C++] surcharge fonction
Char Snipeur
Messages postés
9813
Date d'inscription
Statut
Contributeur
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour.
Voila, j'ai créer une class "complexe".
J'ai définie la fonction "complexe log(complexe)"
qui surcharge "double log(double)".
J'ai aussi le constructeur "complexe::complexe(double)"
Mon problème est le suivant:
je fait :
je ne comprend pas pourquoi. ça pose un problème car il n'y a pas d'opérateur de complexe vers double.
A l'aide !!
Voila, j'ai créer une class "complexe".
J'ai définie la fonction "complexe log(complexe)"
qui surcharge "double log(double)".
J'ai aussi le constructeur "complexe::complexe(double)"
Mon problème est le suivant:
je fait :
double A=5;double B=log(A);Et le compilateur apel la fonction log(complexe) et non log(double)
je ne comprend pas pourquoi. ça pose un problème car il n'y a pas d'opérateur de complexe vers double.
A l'aide !!
A voir également:
- [C++] surcharge fonction
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction filtre excel n'existe pas - Forum Excel
2 réponses
Il faut utiliser le mot clé virtual très probablement, pour faire le lien dynamique. Mais bon ca me semble un peu tiré par les cheveux comme héritage... Pour moi il suffit juste de faire :
Bonne chance
class complexe{ protected: double re; double im; public: complexe(double re0,double im0):re(re0),im(im0){} inline get_re() const {return re;} inline get_im() const {return im;} inline complexe operator +(const complexe & x) const{ return complexe(re+x.get_re(),im+x.get_im()); } //... }; double log(double d){ //... } complexe log(const complexe & c){ //... }
Bonne chance
Merci/
en fait, j'ai trouver le problème, je n'avai pas inclu <cmath> dans la source, et donc seul "complexe log(complexe)" était déclarer.
l'ajoue de l'include <cmath> a résolue le problème.
Dans tout les cas, je trouve ça dommage qu'il n'y ai pas un façon d'apeler explicitement une fonction plutot qu'une autre.
en fait, j'ai trouver le problème, je n'avai pas inclu <cmath> dans la source, et donc seul "complexe log(complexe)" était déclarer.
l'ajoue de l'include <cmath> a résolue le problème.
Dans tout les cas, je trouve ça dommage qu'il n'y ai pas un façon d'apeler explicitement une fonction plutot qu'une autre.