C ++中的类方法

时间:2011-12-08 01:06:08

标签: c++

任何人都可以告诉我如何确保方法只能访问而不是更改C ++类实例中的私有数据成员该方法没有任何参数。我正在编写一个绘制形状的程序,我试过这个

void drawCircle() const;

但我无法确定数据成员是否保持不变。感谢

1 个答案:

答案 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;
};

当然,它并不会阻止你像丢掉常量一样玩耍。