想做一个对List迭代器相加的操作,但是有关问题出在哪里

想做一个对List迭代器相加的操作,但是问题出在哪里?
#include <iostream> 
#include <list>
using namespace std; 

list<int>::iterator& operator+(list<int>::iterator &iter,int a)
{
for(int i=0;i<a;i++)
iter++;
return iter;
}


void main() 

list<int> lis(10);
list<int>::iterator iter;
for(int i=0;i<10;i++)
lis.push_back(i);
iter=lis.begin()+4;
cout<<*iter<<endl;//这里为什么每次打印都是0呢????
}

------解决方案--------------------
#include <iostream> 
#include <list> 
using namespace std; 

list <int>::iterator& operator+(list <int>::iterator &iter,int a) 

for(int i=0;i <a;i++) 
iter++; 
return iter; 



void main() 

list <int> lis;
list <int>::iterator iter; 
for(int i=0;i <10;i++) 
lis.push_back(i); 
iter=lis.begin()+4; 
cout < <*iter < <endl;//这里为什么每次打印都是0呢???? 
}