zoukankan      html  css  js  c++  java
  • 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并修改值是很有必要的。

  • 相关阅读:
    Python 15 爬虫(一)
    Python 14 Mysql数据库(二)
    Python 13 JQuery&Bootstrp
    Python 12 CSS&JavaScript&DOOM
    Python 11 HTML
    Python 10 MySQL数据库(一)
    Python 9 Redis
    Python 8 协程
    Python 7 并发编程
    SNMP协议详解
  • 原文地址:https://www.cnblogs.com/wickedpriest/p/14664362.html
Copyright © 2011-2022 走看看