j*****k 发帖数: 1198 | 1 class A
{
public:
Method mA(some parameters);
private:
type dA;
}
class A
{
public:
Method mA(some parameters) const;
private:
mutable type dA;
};
在以上两种写法中,没搞明白为什么第二种一定要用mutable? 有什么优势?
难道是
const A a;
的时候,第二个可以改变dA, 而第一个不行?
如果data member要变,就不用const呀 |
P********e 发帖数: 2610 | 2 mutable的变量可以在const的function里面修改值
check out TIC
【在 j*****k 的大作中提到】 : class A : { : public: : Method mA(some parameters); : private: : type dA; : } : class A : { : public:
|
j*****k 发帖数: 1198 | 3 这个我知道呀。我的意思是说,在这种情况下,为什么不采用
常规变量和常规function, 非得要用const function和mutable
变量呢?
【在 P********e 的大作中提到】 : mutable的变量可以在const的function里面修改值 : check out TIC
|
P********e 发帖数: 2610 | 4 只修改想修改的variable
【在 j*****k 的大作中提到】 : 这个我知道呀。我的意思是说,在这种情况下,为什么不采用 : 常规变量和常规function, 非得要用const function和mutable : 变量呢?
|
j*****k 发帖数: 1198 | 5 你的意思是说如果const A a的情况下?在一般情况下(不用const function和mutable)
也可以只修改想修改varaible呀
【在 P********e 的大作中提到】 : 只修改想修改的variable
|