Surcharge d'opérateur
Fermé
korin221
Messages postés
10
Date d'inscription
dimanche 13 janvier 2013
Statut
Membre
Dernière intervention
13 janvier 2013
-
13 janv. 2013 à 11:42
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 14 janv. 2013 à 10:36
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 14 janv. 2013 à 10:36
1 réponse
mamiemando
Messages postés
33093
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
4 mai 2024
7 752
14 janv. 2013 à 10:36
14 janv. 2013 à 10:36
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