我有一个成员变量 ,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操作,而无需用户通过访问器例程?