【发布时间】:2015-01-30 11:55:16
【问题描述】:
我正在尝试创建自己的翻译器。是大学作业。我的类翻译器中需要一个迭代器。
class Translator
{
private:
map <string,Word> translator;
public:
class iterator
{
friend class Translator;
private:
map<string,Word>::iterator itm;
public:
iterator operator++();
pair <string,Word> &operator*();
bool operator==(const iterator &it)const;
};
};
我正在尝试超载operator*();
这是代码。
pair <string, Word>& Translator::iterator::operator*()
{
return (*itm);
}
错误:
invalid initialization of reference of type ‘std::pair<std::basic_string<char>, Word>&’ from expression of type ‘std::pair<const std::basic_string<char>, Word>
【问题讨论】:
-
顺便说一句,您可能想调用更少的东西
translator。只是为了让谈论/推理你的代码更容易。 ;)
标签: c++ c++11 iterator overloading operator-keyword