当前位置: 首页 > news >正文

8. mutable 的用法

1. 用法

中文意思是易变的,可变的。
作用有两点:

  1. 保持常量对象中大部分数据成员仍然是“只读”的情况下,实现对个别数据成员的修改。
  2. 使 const 函数可修改对象的 mutable 数据成员。

注意两点:

  1. mutable 只能作用于类的非静态和非常量数据成员。
  2. 在一个类中,应尽量少用或者不用 mutable。

在这里插入图片描述

解释:

  • mutable 和 const 意思相反,故不能修饰 const 数据成员。static 数据成员存储在 Data 段或 BSS 段,属于类,不属于类对象,所以 mutable 也不能修饰 static 数据成员。
  • 对于常对象的数据成员,本不可以修改,若想修改,可以用 mutable 修饰。
#include <iostream>
using namespace std;class Person {string name;           // 普通成员(不能被常对象修改)mutable int visitCnt;  // mutable 修饰的成员(允许修改)public:Person(string n) : name(n), visitCnt(0) {}// const 成员函数:不能修改普通成员,但可以修改 mutable 成员void show() const {// name = "Jack";   // ❌ 编译错误,常对象不可修改普通成员visitCnt++;         // ✅ 可以修改,因为 visitCnt 是 mutablecout << "Name: " << name<< ", visitCnt: " << visitCnt << endl;}
};int main() {const Person p("Tom");  // 定义一个常对象p.show();  // 第1次调用,visitCnt = 1p.show();  // 第2次调用,visitCnt = 2p.show();  // 第3次调用,visitCnt = 3return 0;
}

在这里插入图片描述

http://www.dtcms.com/a/419761.html

相关文章:

  • 做网站 php j2ee做网站投注员挣钱吗
  • 试玩平台网站开发录入客户信息的软件
  • 网站建设谈单情景对话wordpress外网访问错误
  • 怎么学网站开发海阳网站制作
  • 肥东建设局网站家具设计师常去的网站
  • 查网站开通时间网站设计 职业
  • 重庆网站优化搜索引擎优化包括( )方面的优化
  • 助力工业转型升级 金士顿工博会大放异彩
  • 智慧校园智能一卡通管理系统的完整架构与功能模块设计,结合技术实现与应用场景,分为核心平台、功能子系统及扩展应用三部分
  • @[TOC](【笔试强训】Day02) # 1. ⽜⽜的快递(模拟) [题⽬链接: BC64 ⽜⽜的快递]
  • 广州魔站建站3d演示中国空间站建造历程
  • MySQL数据库——13.2.2 JDBC编程-鑫哥演示使用过程
  • AWS实战:轻松创建弹性IP,实现固定公网IP地址
  • 网站制作谁家好vps可以做wordpress和ssr
  • 全能企业网站管理系统Wordpress百万访问优化
  • 东南亚日本股票数据API对接文档
  • 吴*波频道推荐书单
  • 关于排查问题的总结
  • 优雅动听的歌曲之一-小城画师
  • 上海网站建设外包vi设计是设计什么东西
  • 做网站做国外广告竞价推广计划
  • 字节跳动多媒体实验室联合ISCAS举办第五届神经网络视频编码竞赛
  • 电商网站设计制作公司网站荣誉墙怎么做
  • 个人网站托管项目管理软件对比
  • 网站备案目的动感十足的网站
  • 自然语言处理——情感分析 <下>
  • 做长海报的网站临沂网站制作公司6
  • 设计模式(C++)详解——迭代器模式(4)
  • 北京市建设规划网站sem网络推广培训
  • 怎么让网站绑定域名访问不了南浔网站建设