Bonjour,

j'ai fait une classe générique Number<T> pour avoir mes propres objets Double, Float, Integer, etc :
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&);
};
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
 
Number<double> a = 1.0;
a = 2.0;
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++).

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