Surcharge d'opérateur
Bonjour,
Je me permet de vous envoyer un message car j'ai un petit problème.
Je doit réaliser une surcharge d'opérateur "-" de nombre rationnel de type x=a/b à partir d'une surcharge d'opéraeur "+" que j'ai réaliser comme ceci:
rational rational :: operator +(rational M)
{
rational p;
P.a=(a*M.b)+(M.a*b);
P.b=b*M.b;
return P;
}
Je ne vois pas comment réaliser une surcharge - à partir de la surcharge +.
Merci de votre aide.
Je me permet de vous envoyer un message car j'ai un petit problème.
Je doit réaliser une surcharge d'opérateur "-" de nombre rationnel de type x=a/b à partir d'une surcharge d'opéraeur "+" que j'ai réaliser comme ceci:
rational rational :: operator +(rational M)
{
rational p;
P.a=(a*M.b)+(M.a*b);
P.b=b*M.b;
return P;
}
Je ne vois pas comment réaliser une surcharge - à partir de la surcharge +.
Merci de votre aide.
1 réponse
Personnellement, je déclare généralement les opérateurs en dehors de la classe comme ceci :
Note que dans cette fonction, comme les fonctions sont très courtes je les ai mises directement dans le ".hpp". Dans ce cas les opérateurs et méthodes doivent être inline sinon tu peux avoir des définitions multiples (ou sinon, tu déportes leur implémentation dans un ".cpp").
Bonne chance
#ifndef COMPLEX_HPP #define COMPLEX_HPP class complex_t { private: double a; double b; public: complex_t(){} complex_t(const double & a0, const double & b0): a(a0), b(b0) {} inline const double & get_real() const { return a; } inline const double & get_imag() const { return b; } }; inline complex_t operator - ( const complex_t & x, const complex_t & y ) { return complex_t( x.get_real() - y.get_real(), x.get_imag() - y.get_imag() ); } #endif
Note que dans cette fonction, comme les fonctions sont très courtes je les ai mises directement dans le ".hpp". Dans ce cas les opérateurs et méthodes doivent être inline sinon tu peux avoir des définitions multiples (ou sinon, tu déportes leur implémentation dans un ".cpp").
Bonne chance