C/C++教程

C++中的mutable关键字

本文主要是介绍C++中的mutable关键字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

C++11中推出了一种特殊的关键字:mutable用于修饰类变量。它的作用是标注该变量一定会被修改,因此也就不是const类型。
那么标注这个关键字有什么用呢?C++规定被mutable修饰的变量可以在const函数中被修改,因为const函数一般只能允许调用const类型的变量和函数,这样做相当于在函数中给mutable变量开了特例。
那这么做的用处是什么呢?比如我们在有些情境下,需要在const函数中修改某些变量,而这些修改不会影响对象本身的性质,那此时就可以利用mutable来进行修饰。比如说,我们想记录下某个函数被调用的次数:

class A
{
public:
	A() { count = 0; }

	void compute()const
	{
		count++;
		std::cout << "compute method process count:" << count << std::endl;
	}

	mutable int count;
};

int main()
{
	A a;
	a.compute();
	a.compute();
	return 0;
}

这个时候在compute函数中修改count数量并不会影响计算的结果,因此用mutable修饰count并修改值是很有必要的。

这篇关于C++中的mutable关键字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!