1
嗨任何函数重载ostream的假设,我有A类:对于返回向量
using namespace std;
template <class T>
class A{
private:
vector<T> my_V;
public:
// assume initializations etc are done
inline vector<T> get_v()
{
return my_v;
}
};
和一些别的地方我已经超负荷的std :: ostream的矢量
template <class T>
ostream & operator<<(ostream& out, vector<T> &vec)
{
CUI size=vec.size();
for (int i = 0; i < size; i++)
out << vec.at(i) << " ";
if(size>0)out << endl;
return out;
}
当我尝试到
A<int> obj;
cout<<obj.get_v; // gives soo many errors
但是当我做
A<int> obj;
vector<int> v= obj.get_v;
cout<<v; // it works fine
我明白ostream重载有问题,或者我可能需要其他重载技术,有人可以帮我一下吗?在此先感谢
这是完美的感谢很多人! – 2010-10-23 23:51:07
除了詹姆斯所说的两个例子之外,如果你调用这个函数,它会有所帮助。你只是指它。你的超载是一个向量,而不是一个返回向量的函数。干杯&hth。, – 2010-10-23 23:58:57
@Alf:啊,很好。 – 2010-10-24 02:23:12