C++'s mutable

Mutable

The keyword mutable is used to allow a particular data member of const object to be modified. This is particularly useful if most of the members should be constant but a few need to be updateable. Suppose we add a "salary" member to our Employee class. While the employee name and id may be constant, salary should not be. Here is our updated class. 
class Employee {
public:
  Employee(string name = "No Name", 
  string id = "000-00-0000",
  double salary = 0)
  : _name(name), _id(id)
  {
  _salary = salary;
  }
  string getName() const {return _name;}
  void setName(string name) {_name = name;}
  string getid() const {return _id;}
  void setid(string id) {_id = id;}
  double getSalary() const {return _salary;}
  void setSalary(double salary) {_salary = salary;}
  void promote(double salary) const {_salary = salary;}
private:
  string _name;
  string _id;
  mutable double _salary;
};

Now, even for a const Employee object, the salary may be modified. 
const Employee john("JOHN","007",5000.0);
....
....
john.promote(20000.0);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值