参考:https://blog.csdn.net/hongdameng/article/details/80040617
C++如何在const函数修改成员变量的值
在C++,总所周知,c++不允许在const函数直接修改成员变量的值,想要达到此目的,有两种方式:
使用mutable关键字
造一个假的this去操作成员变量
1.第一种方法很简单,只需要在成员变量前加mutable即可。
2.第二种方式,就是造一个const pointer指向this所指对象,然后用这个指针去操作想要修改的成员变量,示例代码和解释如下:
class Class1{
public:
Class1();
~Class1();
void func1() const;
int _value;
};
void Class1::func1() const {
//声明一个指针指向this所指对象,并先将这个对象的常量性转型成const
Class1 * const fakeClass1 = const_cast<Class1* const>(this);
//使用造出来的const指针,去修改成员变量
fakeClass1->_value = 1;
}