Bonjour, je suis en train d'écrire un objet fonction template qui retourne la somme d'une range

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;
}
Par contre, finalement le getResult retourne la valeur 0.
Pouvez vous expliquer pourquoi et comment corriger le problème?
Merci