搭建网站费用,邢台集团网站建设价格,网站建设时间计划书,wordpress改变主题颜色mutable 可变的#xff0c;易变的
跟 constant#xff08;既C中的const#xff09;是反义词作用#xff1a; 保持常量对象中大部分数据成员仍然是“只读”的情况下#xff0c;实现对个别数据成员的修改使类的const函数可以修改对象的mutable数据成员。 注意事项#xff…mutable 可变的易变的
跟 constant既C中的const是反义词作用 保持常量对象中大部分数据成员仍然是“只读”的情况下实现对个别数据成员的修改使类的const函数可以修改对象的mutable数据成员。 注意事项 mutable只能作用于类的非静态和非常量数据成员 mutable 和 const 是反义的同时修饰自相矛盾mutable不能修饰static数据成员因为static数据成员存储在Data段或BSS段属于类不属于类对象那么常对象和常函数可以对其任意地修改所以类的static数据成员根本不需要mutable的修饰但对于常对象的数据成员则不可以被修改若想修改则需要mutable的修饰。 在一个类中应尽量或者不用mutable大量使用mutable表示程序设计存在缺陷。
使用场景当你有一个const成员函数需要访问某个成员变量但这个成员变量的值需要在函数调用期间更新时
class UserInfo {
private:const int a1;
public:mutable int age 0;void setAge(int i) const {//没有 mutable 会编译报错Cannot assign to non-static data member within const member function setAgeage i;
// a1 100;//const 不能赋值}void setAge2(int i) {age i;}
};