C++中的mutable关键字

来源:互联网 发布:足球网站关注软件 编辑:程序博客网 时间:2024/06/04 05:06

mutable关键字是用来指定可变数据成员的。有时希望类的数据成员可以修改,即便是在const成员函数内。用mutable修饰的数据成员永远都不能const,甚至当它是const对象的成员时也是如此。

#include <iostream>using namespace std;struct data{    int value1;    mutable int value2;};int main(){    const data val = {1, 2};        val.value1 = 3; //error, data::value1 read-only    val.value2 = 4;        cout<<val.value1<<endl        <<val.value2<<endl;    return 0;}


 

#include <iostream>using namespace std;class Student{public:    Student(char *na, int ag) : name(na), age(ag)    {}        void Print() const    {        age = age + 1;                name = "Han"; //error Student::name read-only                cout<<"name:"<<name<<endl            <<"age = "<<age<<endl;    }private:    char *name;    mutable int age;   };int main(){    Student stu("David", 20);        stu.Print();    return 0;}


 

0 0
原创粉丝点击