Bonjour
J'ai un problème lors du développement d'une classe j'ai eu à surchargé l'opérateur '==' mais je voudrais surchargé de manière différence si je suis face à un float, double ou long double :
voici ma classe
Comme vous le voyez à cause des typedef j'ai une multiple définition. Est-ce que vous voyez une solution tout en bénificiant des avantages de la "généricité". Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 template <class T> class A { T x; bool operator==(const A<T>&) const; }; template <class T> bool A<T>::operator==(const A<T>& a) const { return a.x == x; } template <> bool A<float>::operator==(const A<float>& a) const { return std::abs(a.x - x) <= std::numeric_limits<float>::epsilon(); } typedef A<int> iA; typedef A<unsigned int> uiA; typedef A<short> sA; typedef A<long> lA; typedef A<float> fA; typedef A<double> dA; typedef A<long double> ldA;
Partager