任何人都可以告诉我如何确保方法只能访问而不是更改C ++类实例中的私有数据成员该方法没有任何参数。我正在编写一个绘制形状的程序,我试过这个
void drawCircle() const;
但我无法确定数据成员是否保持不变。感谢
答案 0 :(得分:7)
声明成员函数const
(与您的示例一样)意味着它不会通过(隐式)this
指针更改任何成员变量。编译器强制执行此操作。
所以以下内容不会编译:
class Foo
{
public:
void drawCircle() const
{
x = 5; // equivalent to this->x = 5; and this is const here
}
private:
int x;
};
当然,它并不会阻止你像丢掉常量一样玩耍。