Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;将标志添加到常量方法_C++_Constants - Fatal编程技术网

C++ c++;将标志添加到常量方法

C++ c++;将标志添加到常量方法,c++,constants,C++,Constants,我有一些用于收集器的类,有两种方法,例如: bool MyCollectorChanged() const; bool MyCollectorDoSomeOperation() const; 我无法更改这些方法的签名,这意味着我无法从签名中删除const 对于某些情况,我想在MyCollectorChanged()中设置/取消设置一些标志,以便检查MyCollectorDoSomeOperation()中的标志值 向类中添加成员标志将不起作用,因为MyCollectorChanged()是一个

我有一些用于收集器的类,有两种方法,例如:

bool MyCollectorChanged() const;
bool MyCollectorDoSomeOperation() const;
我无法更改这些方法的签名,这意味着我无法从签名中删除
const

对于某些情况,我想在
MyCollectorChanged()
中设置/取消设置一些标志,以便检查
MyCollectorDoSomeOperation()
中的标志值

向类中添加成员标志将不起作用,因为
MyCollectorChanged()
是一个常量方法,因此我无法在
MyCollectorChanged()
中更改成员标志


有没有这样做的选择?如何在
MyCollectorChanged()
中设置/取消设置某些标志,使其在
MyCollectorDoSomeOperation()
中可见?

选项1

如果您可以选择更改
private
成员变量的属性,则可以使其中一些变量
可变。然后,您将能够在
const
成员函数中更改它们的值

有关更多信息,请参阅

选项2


如果可以选择使用,则可以更改表示主
类的数据的
类/struct
中任何成员变量的值

如果您可以选择更改
private
成员变量的属性,则可以使其中一些变量
可变。然后,您将能够在
const
成员函数中更改它们的值

有关更多信息,请参阅

选项2


如果您可以选择使用,您将能够更改
类/结构
中表示主
数据的任何成员变量的值

重载方法而不使用
常量
?查看重载方法而不使用
常量
的可能副本?查看通过删除重载方法的可能副本
const
?它会工作吗?@CinCout,我想OP想要更新
const
成员函数中的数据。同意。但超载是否也是实现同样目标的可能解决方案?要在non-const方法中设置/重置标志,并从non-const方法调用
const
方法,以避免代码重复?@CinCout,如果在非
const
对象上调用该函数,则该方法有效,但如果在
const
对象上调用该函数,则该方法无效。通过删除
const
来重载该方法如何?它会工作吗?@CinCout,我想OP想要更新
const
成员函数中的数据。同意。但超载是否也是实现同样目标的可能解决方案?要在non-const方法中设置/重置标志,并从non-const方法调用
const
方法以避免代码重复?@CinCout,如果在非
const
对象上调用函数,则该方法有效,但如果在
const
对象上调用函数,则该方法无效。