mutable关键字

来源:互联网 发布:pkpm软件报价 编辑:程序博客网 时间:2024/06/06 04:03

C++中,实现与const相反作用的关键字是mutable,被mutable修饰的变量处于永远可变状态,即使是在const函数中。
下面通过一个简单的例子说明

Class A {    public:        void output() const;    private:        int info;}void A::output() {    cout << info << endl;}

A类中有成员变量info,成员函数output,output是一个const函数,它的功能是输出info,由于output是const函数,所以在函数体中不能改变成员变量。

如果现在我们想要统计output的调用次数,那么mutable就派上用场了,只要在类中将统计次数的变量修饰为mutable即可。

Class A {    public:        void output() const;    private:        int info;        mutable int times = 0;}void A::output() const {    times++;    cout << "info->" << info << endl         << "times->" << times << endl;}

这样times就突破const函数的限制,能够被修改。

0 0
原创粉丝点击