C++ 使方法不更改自己的类变量而不使其保持常量

C++ 使方法不更改自己的类变量而不使其保持常量,c++,c++11,C++,C++11,假设一个类中存在变量,并且该类的方法不应在不使变量保持常量的情况下更改成员变量。 如何实现?如果可能的话?使用常数法。例如: class Foo { public: // this won't be able to change any member variable void bar() const; } void Foo::bar() const { } 对常量-限定成员函数: struct X { int a; void f() const {

假设一个类中存在变量,并且该类的方法不应在不使变量保持常量的情况下更改成员变量。
如何实现?如果可能的话?

使用常数法。例如:

class Foo {
public:
    // this won't be able to change any member variable
    void bar() const;
}

void Foo::bar() const {
}

对<代码>常量-限定成员函数:

struct X {
    int a;

    void f() const {
        // a = 42; // illegal
    }
};

使成员函数
const
。这是一个吗?听起来像一个。对我来说,这不像XY问题。常量成员方法很常见,不是吗?背后可能有多种原因。@taskinoor,我假设OP知道
const
成员函数。对我来说,这可能是个错误的假设。