运算符重载与函数的问题···
#include<iostream>
#include<iterator>
#include<vector>
using namespace std;
/*template<typename T>
void print(const T&t){
typename T::const_iterator iter;
for(iter=t.begin();iter!=t.end();++iter){
cout<<*iter<<" ";
}
cout<<endl;
}*/
可以正常使用这个函数。
template<typename T>
ostream&operator<<(ostream&out,const T&t){
typename T::const_iterator iter;
for(iter=t.begin();iter!=t.end();++iter){
cout<<*iter<<" ";
}
return out;
}
重载之后的<<在不调用的情况下可以正常运行,但调用的时候就不行了!
int main(int argc,char *argv[]){
vector<int> mv(5,1);
//print(mv);
cout<<mv<<endl;
return 0;
}
请高人指点,为什么写成函数就可以运行,而写成重载就不行了呢?
但愿高人能指点一下~~~~