我有一个成员变量 ,enabled_m
其值取决于许多变量。由于这些不变量应该由类维护,我希望它是private
:
class foo_t
{
public:
void set_this(...); // may affect enabled_m
void set_that(...); // may affect enabled_m
void set_the_other_thing(...); // may affect enabled_m
bool is_enabled() const { return enabled_m; }
private:
bool enabled_m;
};
哪个有效,但实际上我的意图是要求用户foo_t
通过课程来修改 enabled_m
. 如果用户只想阅读 enabled_m
,那应该是允许的操作:
bool my_enabled = foo.enabled_m; // OK
foo.enabled_m = my_enabled; // Error: enabled_m is private
有没有一种方法可以enabled_m
public
进行const
操作和private
非const
操作,而无需用户通过访问器例程?