C++ C++;ostream_随附<&书信电报;运算符编译错误
我正在使用Solaris 10上的旧Solaris编译器编写一些遗留代码(这里没有新的C++0x;-) -bash-3.2$CC-VC++ C++;ostream_随附<&书信电报;运算符编译错误,c++,solaris,C++,Solaris,我正在使用Solaris 10上的旧Solaris编译器编写一些遗留代码(这里没有新的C++0x;-) -bash-3.2$CC-V cc:Sun C++ 5.12 SunSuSSPARC 2011/11/16 我有一个带迭代器的第三方字典类 template<K, V> class DictIterator { public: DictIterator(TheDictClass<K, V>& collection);
cc:Sun C++ 5.12 SunSuSSPARC 2011/11/16
我有一个带迭代器的第三方字典类template<K, V>
class DictIterator
{
public:
DictIterator(TheDictClass<K, V>& collection);
K key() const;
V value() const;
// advance the iterator. return true if iterator points to a valid item
bool operator()();
...
};
模板
类词典
{
公众:
辞典编纂者(辞典类和文集);
K键()常数;
V值()常数;
//推进迭代器。如果迭代器指向有效项,则返回true
布尔算子();
...
};
我的代码应该遍历字典中的每一项,但有一个编译错误,我无法解释:
DictIterator iterator(theDictionary);
while(iterator())
{
cout << iterator.key();
}
字典迭代器(字典);
while(迭代器())
{
cout操作符dicterator
是一个类模板,因此如果没有更多的上下文,这是没有意义的:dicterator迭代器(字典);
。还有键()
是私有的。请尝试创建一个显示给我们看。您是否定义/重载了键&
应该是const键&
@n.m。我使用的是旧代码,而在旧代码中它不是const。如果您能回答为什么它必须是const,那么我洗耳恭听;-)
DictIterator iterator(theDictionary);
while(iterator())
{
Key key(iterator.key());
cout << key;
}