C++'s mutable

来源:互联网 发布:美工教程 编辑:程序博客网 时间:2024/05/26 22:58

Mutable

The keyword mutable is used to allow a particular datamember of const object to be modified. This is particularly useful ifmost of the members should be constant but a few need to be updateable.Suppose we add a "salary" member to our Employee class. While theemployee name and id may be constant, salary should not be. Here is ourupdated 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);

原创粉丝点击