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);
C++'s mutable
最新推荐文章于 2024-07-24 08:30:00 发布