【发布时间】:2020-10-02 17:57:19
【问题描述】:
在 C++11 中,我在实现 const 迭代器时遇到问题 int 我的课程代码(在 .cpp 文件中)我有:
class MyClass{
public:
class iterator;
iterator begin() const;
iterator end() const;
class const_iterator;
const_iterator begin() const;
const_iterator end() const;
}
但您可能知道,我无法实现具有相同签名的 2 个函数,那么我该如何解决呢?
【问题讨论】:
-
你为什么要做
iterator begin() const;?为什么是const? -
因为我不应该对我的班级成员进行更改(这个)
-
通常,您可以使用它进行更改,例如插入、擦除 ....
-
如果你删除/插入一些数据,指向你数据的指针可能指向一个新的动态数组。
-
你的类应该有一个 const
begin()和一个非常量begin()。有两个 constbegin()是没有意义的。如果你不想要一个非常量begin()完全删除它。
标签: c++ class methods iterator