【发布时间】:2018-06-19 12:25:05
【问题描述】:
考虑
class foo
{
int a;
int b;
public:
void f1();
void f2();
void f3();
};
C++ 中是否支持允许a 在f2() 和f3() 中可变,但在f1() 中const,同时保持b 在任何地方都可变?
编辑:上面的例子是问题的说明,但我正在寻找是否有通用的解决方案来编写访问控制
【问题讨论】:
-
我想你不想要废话的答案是不言而喻的?
-
使
f1成为const成员函数并声明bmutable? -
在
f1的开头通过auto const &a = this->a;遮蔽它怎么样? -
为什么阅读声明的人会关心与成员函数的合约无关的实现细节?
-
您希望您的实现细节包含在类定义中吗?这不是一个好主意。