C++中mutable的使用场景和用法

mutable用法通常用在变量声明前,如mutable int a;让类的常函数和常对象调用使用。

mutalbe的中文翻译是“可变的”,与const是反义词。

所以在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。

我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数就是常函数,一般会声明成const。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。

#include<iostream>using namespace std;class Cube{	public:		Cube() 		{		}		void fun() const //常对象		{			this->m_B=100;		}		int m_A;		mutable int m_B; //特殊成员 可被常函数调用 };void test(){	Cube C;	C.fun();	cout<<C.m_B<<endl;		const Cube C1; //常对象	C1.fun();	cout<<C1.m_B<<endl; //常对象可以访问常函数 和调用 mutable 特殊成员 }int main(){	test();        return 0;}

以上代码中 变量int m_B 前加了mutable后 ,就可以被常函数fun()和常对象C1调用了。

最后更新时间:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

上一篇2022-09-16 9:11:28
下一篇 2022-09-19 10:56:27

相关推荐

  • 没有相关文章!