3
我有一个类:问题与转换
template<class T>
class MyClass
{
public:
class Iterator {
public:
Iterator(MyClass<T>&){/*some code*/};
};
operator Iterator();
Iterator& begin();
};
template<class T>
MyClass<T>::operator typename MyClass<T>::Iterator()
{
return MyClass::Iterator(*this);
}
template<class T>
typename MyClass<T>::Iterator& MyClass<T>::begin()
{
return *this;//<---------------cannot convert from MyClass to MyClass<T>::Iterator
}
为什么会出现错误?我提供了转换操作符,所以一切都应该没问题。
你也可以删除转换,因为Iterator的构造函数已经允许相同的转换。 – UncleBens 2010-08-14 15:22:30