c++ discards qualifiers

在c++编译的时候,会出现discards qualifiers的错误提示

这个错误的表示代码中,尝试修改const的变量,例如:

1,给const的类成员赋值

class person {
private:
    int age;
public:
    const int& getAge() const
    {
        return age;
    }
    void setAge(const int& a)
    {
        age = a;

    }

    int getDoubleAge() //非const成员函数
    {
        return age*2;

    }

person() {
        age = 0;
    }

};

int main(int argc,char *argv[])
{
    const person p;
    p.setAge(10);
    return 0;
}

2,const变量,调用了非const成员函数

int main(int argc,char *argv[])
{
        const person p;
        p.getDoubleAge();


        return 0;

}

解决方法:

声明非const成员函数为const函数

int getDoubleAge() const
    {
        return age*2;
    }

你可能感兴趣的:(c++ discards qualifiers)