我有类Foo
,它的成员bar_
是指向某些数据的指针。方法modify
修改数据,但不修改指针本身。因此我可以将该方法声明为const:
class Foo {
public:
Foo() : bar_(new double) {};
void modify() const {*bar_ += 1;};
private:
double *bar_;
};
如果我将该方法声明为const,它将可以从其他 const 方法访问,这更灵活。同时,我可以删除const作为对其他开发人员和用户的提示,该方法间接修改数据(并假设数据归类所有)。所以我在这里有一个选择:声明modify
为const或删除const :void modify() const
或void modify()
.
每种方法的优缺点是什么?指导方针是怎么说的?我应该怎么办?