Tôi đang cố tạo trình dịch của riêng mình. Đó là công việc đại học. Tôi cần một iterator trong lớp của tôi Translator.Iterator in C++
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;
};
};
Tôi đang cố gắng quá tải operator*()
;
Đây là mã.
pair <string, Word>& Translator::iterator::operator*()
{
return (*itm);
}
Lỗi:
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>
BTW, bạn có thể muốn gọi điều ít 'translator'. Chỉ cần để nói chuyện/lý luận về mã của bạn dễ dàng hơn. ;) – Yakk