news 2026/6/9 21:00:42

17. mutable

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
17. mutable

1.mutable 的核心用法

2.mutable 的使用限制


1.mutable 的核心用法

1).回顾:const成员函数的默认规则,类的const成员函数中,默认不能修改任何普通的成员变量
#include <iostream>#include <string>usingnamespacestd;classPerson{private:stringname;intaccess_count;// 访问计数:记录getName被调用的次数public:Person(stringn):name(n),access_count(0){}// const成员函数:默认不能修改成员变量stringgetName()const{access_count++;// 错误!const函数不能修改普通成员变量returnname;}};intmain(){constPersonp("Alice");cout<<p.getName()<<endl;return0;}

2).mutable的核心用法:豁免const函数的修改限制,给access_count加上mutable修饰后,就能在const成员函数中修改它
#include <iostream>#include <string>usingnamespacestd;classPerson{private:stringname;mutableintaccess_count;// mutable修饰:允许const函数修改public:Person(stringn):name(n),access_count(0){}// const成员函数:可以修改mutable变量stringgetName()const{access_count++;// 合法!mutable变量不受const限制cout<<"getName被调用了 "<<access_count<<" 次"<<endl;returnname;}// 获取访问计数(辅助函数)intgetCount()const{returnaccess_count;}};intmain(){constPersonp("Alice");// const对象,只能调用const成员函数cout<<p.getName()<<endl;// 输出:getName被调用了 1 次 → Alicecout<<p.getName()<<endl;// 输出:getName被调用了 2 次 → Alicecout<<"总调用次数:"<<p.getCount()<<endl;// 输出:2return0;}

2.mutable 的使用限制

a."只能修饰类的非静态成员变量":不能修饰全局变量,局部变量,函数参数,静态成员变量(static),const变量

b.线程安全:如果mutable变量被多线程访问,需要手动加锁(const函数不保证线程安全)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/31 22:34:56

3步打造专属Office界面:零代码提升90%工作效率的秘密武器

3步打造专属Office界面&#xff1a;零代码提升90%工作效率的秘密武器 【免费下载链接】office-custom-ui-editor 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor &#x1f914; 问题&#xff1a;你是否正在被这些Office界面问题折磨&#xff1f…

作者头像 李华
网站建设 2026/6/10 12:47:42

多模态突破:TranslateGemma在图像翻译中的惊艳表现

多模态突破&#xff1a;TranslateGemma在图像翻译中的惊艳表现 1. 当文字藏在图片里&#xff0c;它真的能“看见”并翻译吗&#xff1f; 你有没有遇到过这样的场景&#xff1a;拍下一张国外菜单、路标或说明书的照片&#xff0c;想立刻知道上面写了什么&#xff1f;过去&…

作者头像 李华
网站建设 2026/6/9 23:15:29

AnimateDiff避坑指南:解决NumPy兼容性问题一步到位

AnimateDiff避坑指南&#xff1a;解决NumPy兼容性问题一步到位 专为本地部署者写的实战经验总结&#xff5c;8G显存友好&#xff5c;Realistic Vision Motion Adapter 显存优化版 前言&#xff1a;我是一名专注AI视频生成落地的工程师&#xff0c;过去半年在多台消费级设备&am…

作者头像 李华
网站建设 2026/5/29 14:51:40

前端集成方案:Vue3+Z-Image Turbo构建在线设计平台

前端集成方案&#xff1a;Vue3Z-Image Turbo构建在线设计平台 1. 为什么需要在浏览器里跑AI绘图 你有没有遇到过这样的场景&#xff1a;设计师正在和客户远程沟通&#xff0c;客户突然说“能不能把主图背景换成海边&#xff1f;再加个阳光效果”&#xff0c;这时候如果还要切…

作者头像 李华
网站建设 2026/6/5 16:45:34

YOLO X Layout从零开始:Dockerfile多阶段构建,镜像体积压缩至328MB

YOLO X Layout从零开始&#xff1a;Dockerfile多阶段构建&#xff0c;镜像体积压缩至328MB 1. 这不是普通的目标检测&#xff0c;是专为文档而生的视觉理解工具 你有没有遇到过这样的场景&#xff1a;手头有一堆扫描版PDF或手机拍的合同、报表、论文&#xff0c;想快速提取其…

作者头像 李华
网站建设 2026/6/10 10:48:16

3步掌控网页资源管理:从手动到自动化的效率跃迁

3步掌控网页资源管理&#xff1a;从手动到自动化的效率跃迁 【免费下载链接】E-Hentai-Downloader Download E-Hentai archive as zip file 项目地址: https://gitcode.com/gh_mirrors/eh/E-Hentai-Downloader 核心价值&#xff1a;重新定义网页内容管理方式 你是否曾为…

作者头像 李华