c++将标志添加到const方法中
c++ add flag to a const method
我有一些收集器类,有两种方法,例如:
bool MyCollectorChanged() const;
bool MyCollectorDoSomeOperation() const;
我不能更改这些方法的签名,这意味着我不能从签名中删除const
。
在某些情况下,我想在MyCollectorChanged()
中设置/取消设置一些标志,这样我就可以检查MyCollectorDoSomeOperation()
中的标志值。
向类中添加成员标志将不起作用,因为MyCollectorChanged()
是一个const方法,所以我不能更改MyCollectorChanged()
中的成员标志。
有选择吗?如何在MyCollectorChanged()
中设置/取消设置某些标志,使其在MyCollectorDoSomeOperation()
中可见?
选项1
如果您可以选择更改private
成员变量的属性,则可以将其中一些设置为mutable
。然后,您将能够在const
成员函数中更改它们的值。
请参阅http://en.cppreference.com/w/cpp/language/cv了解更多信息。
选项2
如果您可以选择使用Pimpl习惯用法,则可以更改class/struct
中表示主class
数据的任何成员变量的值。
相关文章:
- 从 const 对象访问非 const 方法
- 为什么我可以调用一个从const方法更改成员的方法
- 使用新的c++返回值语法的Const方法
- const_cast const 方法中的"this"将"this"分配给外部变量?
- const 方法使用引用修改对象
- 从具有相同基数的另一个派生类调用派生类的非 const 方法
- 返回非常量引用编译的 Const 方法
- C++:无法从 const 方法返回对象的shared_ptr
- 是否可以从 const 方法迭代链表
- 为什么在const和非const方法中删除代码重复不是不确定的行为
- 在使用指向 const 和非 const 方法的成员指针时减少模板专用化的数量
- "可变"变量只能由 const 方法之一可变?
- Golang中的const方法
- C++ 逻辑恒常性和 const方法的按值返回
- c++将标志添加到const方法中
- C++防止const方法通过成员指针或引用更改数据
- 为什么 const 方法不覆盖 C++ 中的非 const 方法?
- 如何在const方法中迭代映射
- 为什么没有标准化的方法来避免const方法的代码重复
- 修改 const 方法中的 pointee 值