Bonjour,
j'ai fait une classe générique Number<T> pour avoir mes propres objets Double, Float, Integer, etc :
L'attribut _real permet de stocker la valeur du nombre. J'ai une question à propose de ce bout de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 template<typename T> class Number<T> { private: T _real; public: Number(T const&); Number(Number<T>const&); Number<T>& operator=(Number<T>const&); };
A la première ligne, il y a un appel implicite au premier constructeur de ma classe : je n'ai pas de problème avec ça. Par contre, je ne comprends pas pourquoi la seconde ligne fonctionne. Elle est importante car elle me permet ensuite de surcharger les opérateurs "+,-,*,/" de manière efficace (je suis aussi rapide que les opérations classiques en exploitant le tag -O3 de g++).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Number<double> a = 1.0; a = 2.0;
Voilà, si quelqu'un pourrait m'éclairer sur ce point et me dire si ce comportement est dans la norme ou si c'est propre à g++.
Merci
Partager