【发布时间】:2016-02-03 09:39:36
【问题描述】:
我被要求写一个与istream_iterator功能相同的迭代器,迭代器的名字是CMyistream_iterator。我想设置 * 运算符的功能,因为它在迭代器中使用。
template<class T>
class CMyistream_iterator{
public:
T my;
T* cm;
CMyistream_iterator(istream& x):my(x){};
T operator * (CMyistream_iterator<T>& p);
};
template<class T>
T CMyistream_iterator<T>::operator * (CMyistream_iterator<T>& p){return p.my;}
int main()
{
CMyistream_iterator<int> inputInt(cin);
int n1,n2,n3;
n1 = * inputInt;
}
但代码出错并说“'operator*' 不匹配(操作数类型为 CMyistream)”。谁能帮帮我?
【问题讨论】:
标签: c++ templates iterator operator-overloading