Bonjour
Est ce qu'il est possible d'utiliser les templates dans l'operateur pour assurer que l'objet passe est bien construit avec le type voulu et pour permettre de surcharge la fonction?
Par example:
ne compile pas...
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
27
28
29
30
31
32
33
34
35
36 class duree // classe englobant l heure les minute et les seconde { public: duree(){ val = 2; } int val; }; class date // classe englobant les anne, les mois, les jour, les heure, les minutes, les seconeds { public: date(){ val = 3; } int val; }; template <class T> class _clock { public: T temps; void print() { std::cout << temps.val << std::endl; } template <class T> friend _clock operator + (const _clock<date> &c1, const _clock<duree> &c2) { _clock ret; return ret; } friend _clock<date> operator - (const _clock<date> &c1, const _clock<duree> &c2) { _clock ret; return ret; } };
Le but est de pouvoir faire comme ca:
Je ne sais pas si c'est une bonne idee de faire une difference entre la date et la duree
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 _clock<date> d1; _clock<date> d2; _clock<duree> d3; std::cout << "Temps entre les 2 dates: " << d1 - d2 << std::endl; std::cout << "Temp enleve a d1: " << d1 - d3 << std::endl;![]()
Partager