有没有办法声明一个迭代器,它是类中的成员变量,即使该类的对象是 const,也可以使用成员函数递增。
tmpforspam
问问题
1236 次
4 回答
7
那将与“可变”关键字一起使用。
class X
{
public:
bool GetFlag() const
{
m_accessCount++;
return m_flag;
}
private:
bool m_flag;
mutable int m_accessCount;
};
于 2009-02-26T16:38:24.430 回答
5
你确定你需要迭代器作为成员吗?迭代器有一个能力:它们变得无效。这是设计问题的一个小迹象。
于 2009-02-26T17:00:31.193 回答
3
声明它是可变的,而不是易变的。
于 2009-02-26T16:38:49.840 回答
-1
知道了。
using namespace std;
class tmptest
{
public:
void getNextItr()const
{
m_listItr = m_list.begin();
m_listItr++;
}
list<string> m_list;
mutable list<string>::const_iterator m_listItr;
};
随const_iterator
作品变化。感谢您提醒我 mutable 与 volatile。我将 volatile 与 mutable 混淆了。再次感谢!
于 2009-02-26T17:39:04.673 回答