Bonjour, je suis en train d'écrire un objet fonction template qui retourne la somme d'une range
Par contre, finalement le getResult retourne la valeur 0.
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
37 #include <string> #include <iostream> #include <algorithm> #include <vector> using namespace std; template <typename T> class Sum {private: T sum; public: Sum(){ sum = 0;}; void operator()( T n ) { sum += n; }; T getResult() { return this->sum; }; }; int main() { vector<int> v; v.push_back( 1 ); v.push_back( 2 ); v.push_back( 3 ); Sum< int > sumFunc; for_each( v.begin(), v.end(), sumFunc ); cout << sumFunc.getResult() << endl; system( "pause" ); return 0; }
Pouvez vous expliquer pourquoi et comment corriger le problème?
Merci
Partager