如何区分对象和const对象

时间:2013-06-11 23:14:38

标签: c++

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

我该怎么办?

感谢。

3 个答案:

答案 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) { ... }