0

我正在尝试在 C++ 中实现模板链表,它假设有 Iterator 和 ConstIterator (不能修改列表)。我需要调用的方法返回一个与列表对象匹配的迭代器。例如,如果使用 const list 调用 begin(),它将返回 ConstIterator,而使用非 const list 将返回 Iterator。

我该怎么做?

谢谢。

4

3 回答 3

5

像这样:

ConstIterator begin() const;
Iterator begin(); //  ^^^^^

另外,您可能想添加cbegin

ConstIterator cbegin() const;
于 2013-06-11T23:16:23.340 回答
2

只需重载函数:

 Iterator getIterator();
 ConstIterator getIterator() const;
于 2013-06-11T23:16:11.717 回答
1

普通的 C++ 重载将完成此操作。IE:

ConstIterator GetList(const List* x) const { ... }
Iterator GetList(List* x) { ... }
于 2013-06-11T23:17:05.653 回答