首页 > 编程语言 >C++中的 mutable 关键字

C++中的 mutable 关键字

时间:2023-12-22 17:46:27浏览次数:50  
标签:const int counter C++ 关键字 MyClass mutable

Parcel 类中 mDataPos 被修饰为 mutable 类型变量。

C++ 中的 mutable 是一个关键字,用于修饰类的成员变量。mutable 关键字的作用是允许被修饰的成员变量在 const 修饰的成员函数中被修改,即使这些函数被声明为 const。

下面是 mutable 关键字的使用示例:

#include <iostream>
using namespace std;

class MyClass {
public:
    MyClass(int c):counter(c){}
    /* 声明为const函数,表示不会修改类的成员属性,但是mutable的属性除外 */
    int getValue() const;
private:
    mutable int counter;
};

int MyClass::getValue() const {
    counter++;  // 允许在 const 成员函数中修改 mutable 成员变量
    return counter;
}

int main()
{
    MyClass mc = 10;
    cout << mc.getValue() << endl;
    return 0;
}

/*
4.mutable$ ./pp
11
*/

 

标签:const,int,counter,C++,关键字,MyClass,mutable
From: https://www.cnblogs.com/hellokitty2/p/17922072.html

相关文章

  • C++ 动态数组初始化为0
    在C++中,动态数组通常使用new关键字进行分配。如果你想在创建动态数组时将其所有元素初始化为0,你可以使用value-initialization。以下是一个示例,展示了如何创建一个动态数组并将其所有元素初始化为0:#include<iostream>intmain(){constintsize=10;//定义数组大......
  • C++ unique_ptr简单使用
    #######################智能指针(智能指针是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保在离开指针所在作用域时,自动正确的销毁动态分配的对象,防止内存泄漏)头文件#include<memory>unique_ptr特性(属性为对象,而不是指针,管理指针)(1).基于排他所有权模式:两个指......
  • 【每周例题】蓝桥杯 C++ 区间最大和
    区间最大和题目蓝桥杯区间最大和题目分析  这道题涉及到了区间问题,我们首先要了解规定的该区间范围:1<p且p+k一1<n,我们将其转化:1<p<n-k+1,当我们得到这个区间的时候,需要求该区间的最大和可以用双重for循环搞定。代码 #include<iostream>usingnamespacestd;int......
  • Unity 捕获C++ dll的Crash
    转载:C#程序调用第三dll引起崩溃,但是try无法捕捉到第三方dll的异常-.net程序调试-少有人走的路(skcircle.com) 问题:一个第三方的dll,调用它的函数会引起程序崩溃,但是try却无法捕捉到此异常。 因为没有Try到异常,那么一个未处理的异常,会导致整个进程终止。这就是程序会崩溃的原......
  • static关键字在C/C++中的用法
    在C++中,static关键字有几种不同的用法:1.静态(局部)变量在函数内部声明的变量或类中声明的变量前加上static,表示这个变量的生命周期为整个程序运行期间,而不是仅在函数执行期间。静态变量在第一次调用时初始化,之后保持其值直到程序结束。voidfunc(){staticintcount......
  • wps js在指定区域查找关键字
    Workbooks.Item(sy112).Activate();//“关键字”所在的文件letrng=Rows.Item("3:4");//“关键字”所在行letc=rng.Find("关键字",undefined,xlValues);if(c!=null){ letfirstCol=c.Column;//将第1个获取的列号赋值给变量firstCol do{arr.push(c.Column);//将列号存入列表......
  • C++基础 -11- 类的构造函数
     ———————类的构造函数——————— ......
  • C++ Qt开发:StandardItemModel数据模型组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍StandardItemModel数据模型组件的常用方法及灵活运用。QStandardItemModel是Qt中用于存储标准......
  • Qt/C++视频监控Onvif工具/组播搜索/显示监控画面/图片参数调节/OSD管理/祖传原创
    一、前言能够写出简单易用而又不失功能强大的组件,一直是我的追求,简单主要体现在易用性,不能搞一些繁琐的流程和一些极难使用的API接口,或者一些看不懂的很难以理解的函数名称,一定是要越简单越好。功能强大主要体现在功能的完整性,常规的接口肯定是必备的,然后在默认值方面,尽量将值设......
  • Visual Studio如何再次配置一个曾经配置过的C++库?
      本文介绍在VisualStudio软件中调用C++各种配置、编译完毕的第三方库的方法。  在撰写C++代码时,如果需要用到他人撰写的第三方库(例如地理数据处理库GDAL、矩阵运算库Armadillo等),并不能像Python等语言那样,安装好库后直接在不同代码文件中使用;而是需要每一次新建一个代码文......