我正在尝试在C ++中实现模板链表,假设有Iterator和ConstIterator(不能修改列表)。我需要调用这些方法返回一个与列表对象匹配的迭代器。例如,如果使用const列表调用begin(),它将返回ConstIterator,并且使用非const列表将返回Iterator。
我该怎么办?
感谢。
答案 0 :(得分:5)
像这样:
ConstIterator begin() const;
Iterator begin(); // ^^^^^
另外,您可能想添加cbegin
:
ConstIterator cbegin() const;
答案 1 :(得分:2)
只是重载函数:
Iterator getIterator();
ConstIterator getIterator() const;
答案 2 :(得分:1)
普通的C ++重载将实现这一目标。即:
ConstIterator GetList(const List* x) const { ... }
Iterator GetList(List* x) { ... }