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

C++ :const修饰成员函数

常函数: 

常函数:
   成员函数后加const后我们称为这个函数为常函数
   常函数内不可以修改成员属性
   成员属性声明时加关键字mutable后,在常函数中依然可以修改

属性可修改:

class Person
{
public:
    void showPerson()
    {
        m_A = 100;
    }
    int m_A;

};

加上 const 属性不可修改:

class Person
{
public:
    void showPerson() const
    {
        m_A = 100;
    }
    int m_A;

};

具体示例如下:


#include <iostream>
using namespace std;class Person
{
public://隐含在每一个成员函数内部都有一个this指针//this指针的本质是: 一个指针常量, 指针的指向不可修改,值可以修改//如果想让指针指向的值也不可以修改,需要声明常函数//const Person* const this;//在成员函数 后面加const,修饰的是this指向,让指针指向的值也不可以修改void showPerson() const   //常函数 (常函数中不允许修改指针指向的值){  this->m_B = 100;    //修改加关键字mutable//this->m_A = 100;//this = NULL; //不能修改指针的指向 Person* const this;}int m_A;mutable int m_B;   //特殊变量,即使在常函数中,也可以修改这个值,加关键字mutable
};void test01()
{Person p;p.showPerson();}
int main()
{test01();system("pause");return 0;
}

 常对象:

常对象:
   声明对象前加const称该对象为常对象
   常对象只能调用常函数

class Person
{
public://隐含在每一个成员函数内部都有一个this指针//this指针的本质是: 一个指针常量, 指针的指向不可修改,值可以修改//如果想让指针指向的值也不可以修改,需要声明常函数//const Person* const this;//在成员函数 后面加const,修饰的是this指向,让指针指向的值也不可以修改void showPerson() const   //常函数 (常函数中不允许修改指针指向的值){  this->m_B = 100;    //修改加关键字mutable//this->m_A = 100;//this = NULL; //不能修改指针的指向 Person* const this;}void func(){m_A = 10000;}int m_A;mutable int m_B;   //特殊变量,即使在常函数中,也可以修改这个值,加关键字mutable
};void test01()
{Person p;p.showPerson();}void test01()
{const Person p; //常量对象   在对象前面加上const,变为常对象//p.mA = 100; //常对象不能修改成员变量的值,但是可以访问p.m_B = 100;  //m_B是特殊的值 但是常对象可以修改mutable修饰成员变量//常对象只能调用常函数p.showPerson();//p.func();    常对象不可以调用普通成员函数,因为普通成员函数可以修改属性
}int main()
{test01();system("pause");return 0;
}

 

相关文章:

C++ :const修饰成员函数

常函数&#xff1a; 常函数&#xff1a; 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后&#xff0c;在常函数中依然可以修改 属性可修改&#xff1a; class Person { public: void showPerson() …...

论文阅读:“Model-based teeth reconstruction”

文章目录 AbstractIntroductionTeeth Prior ModelData PreparationParametric Teeth Model Teeth FittingTeeth Boundary Extraction Reference Abstract 近年来&#xff0c;基于图像的人脸重建方法日趋成熟。这些方法可以捕捉整个面部或面部特定区域&#xff08;如头发、眼睛…...

Web 安全之证书透明(Certificate Transparency)详解

目录 证书透明性的概念 数字证书和颁发机构 证书透明的起源 证书透明的工作原理 证书透明的实现方法 证书透明的优点 浏览器和客户端对证书透明的支持情况 小结 证书透明&#xff08;Certificate Transparency, CT&#xff09;是网络安全领域中的一个重要概念&#xff…...

智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蜻蜓算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…...

【古诗生成AI实战】之二——项目架构设计

[1] 项目架构 在我们深入古诗生成AI项目的具体实践之前&#xff0c;让我们首先理解整个项目的架构。本项目的代码流程主要分为三个关键阶段&#xff1a; 1、数据处理阶段&#xff1b;   2、模型训练阶段&#xff1b;   3、文本生成阶段。 第一步&#xff1a;在数据处理阶段…...

动态网页从数据库取信息,然后展示。

把数据库的驱动放在bin目录下。 通过servlet 读取数据库的内容&#xff0c;生成session,然后跨页面传给展示页。 package src;import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSe…...

单片机学习3——数码管

数码管&#xff0c;根据内部结构&#xff0c;可分为共阴极数码管和共阳极数码管。七段发光管加上一个小数点&#xff0c;共计8段。因此&#xff0c;我们对它编程的时候&#xff0c;刚好是用一个字节。 数码管的显示方式&#xff1a; 1&#xff09;静态显示&#xff1b; 2&…...

数据库表结构导出成Excel或Word格式

前言 该工具主要用于导出excel、word&#xff0c;方便快速编写《数据库设计文档》&#xff0c;同时可以快速查看表的结构和相关信息。 本博客仅作记录&#xff0c;最新源码已经支持多种数据库多种格式导出&#xff0c;有兴趣的可移步源码作者地址&#xff1a;https://gitee.co…...

School training competition ( Second )

A. Medium Number 链接 : Problem - 1760A - Codeforces 就是求三个数的中位数 : #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std; typedef long long LL; const int N 2e510;inline void …...

深度解析 Docker Registry:构建安全高效的私有镜像仓库

文章目录 什么是Docker Registry&#xff1f;Docker Hub vs. 私有RegistryDocker Hub&#xff1a;私有Registry&#xff1a; 如何构建私有Docker Registry&#xff1f;步骤一&#xff1a;安装Docker Registry步骤二&#xff1a;配置TLS&#xff08;可选&#xff09;步骤三&…...

leetcode 不同的二叉搜索树

给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;5 示例 2&#xff1a; 输入&#xff1a;n 1 输出&#xff1a;…...

通俗易懂的spring Cloud;业务场景介绍 二、Spring Cloud核心组件:Eureka 、Feign、Ribbon、Hystrix、zuul

文章目录 通俗易懂的spring Cloud一、业务场景介绍二、Spring Cloud核心组件&#xff1a;Eureka三、Spring Cloud核心组件&#xff1a;Feign四、Spring Cloud核心组件&#xff1a;Ribbon五、Spring Cloud核心组件&#xff1a;Hystrix六、Spring Cloud核心组件&#xff1a;Zuul七…...

大数据预处理技术

文章目录 前言 大数据技术成为前沿专业 也是现在甚至未来的朝阳产业&#xff0c;大数据有分别是 数据预处理 数据存储 大数据处理和分析 数据可视化 部分组成 &#xff0c;大数据行业有数据则称王&#xff0c;大数据的核心是数据本身 怎么获取有价值的数据呢&#xff1f;本章讲…...

跳表的学习记录

跳表&#xff08;Skip List&#xff09;是一种数据结构&#xff0c;它通过在多个层次上添加额外的前向指针来提高有序数据的搜索效率。跳表与其他常见的有序数据结构&#xff08;如二叉搜索树、平衡树如AVL树和红黑树、B树等&#xff09;相比&#xff0c;具有其独特的优缺点&am…...

电子学会C/C++编程等级考试2022年09月(二级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:统计误差范围内的数 统计一个整数序列中与指定数字m误差范围小于等于X的数的个数。 时间限制:5000 内存限制:65536输入 输入包含三行: 第一行为N,表示整数序列的长度(N <= 100); 第二行为N个整数,整数之间以一个空格分…...

如何使用nginx部署静态资源

Nginx可以作为静态web服务器来部署静态资源&#xff0c;这个静态资源是指在服务端真实存在&#xff0c;并且能够直接展示的一些文件数据&#xff0c;比如常见的静态资源有html页面、css文件、js文件、图片、视频、音频等资源相对于Tomcat服务器来说&#xff0c;Nginx处理静态资…...

lua的gc原理

lua垃圾回收(Garbage Collect)是lua中一个比较重要的部分。由于lua源码版本变迁&#xff0c;目前大多数有关这个方面的文章都还是基于lua5.1版本&#xff0c;有一定的滞后性。因此本文通过参考当前的5.3.4版本的Lua源码&#xff0c;希望对Lua的GC算法有一个较为详尽的探讨。 L…...

redis作为缓存详解

目录 前言&#xff1a; 为什么说关系型数据库性能不高 如何提高MySQL并发量 缓存更新策略 定期更新 实时更新 内存淘汰策略 Redis内置的淘汰策略 缓存常见问题 缓存预热 缓存穿透 缓存雪崩 缓存击穿 前言&#xff1a; 对于缓存的理解&#xff0c;缓存目的就是为了…...

231127 刷题日报

这周值班。。多少写道题吧&#xff0c;保持每天的手感。老婆给买了lubuladong纸质书&#xff0c;加油卷。 1. 131. 分割回文串 写个这个吧&#xff0c;钉在耻辱柱上的题。 为啥没写出来&#xff1a; 1. 递归树没画对 把树枝只看做是1个字母&#xff0c;而且不清楚树枝和节点…...

【Linux】vim-多模式的文本编辑器

本篇文章内容和干货较多&#xff0c;希望对大家有所帮助&#x1f44d; 目录 一、vim的介绍 1.1 vi 与 vim的概念1.2 Vim 和 Vi 的一些对比 二、vim 模式之间的切换 2.1 进入vim2.2 [正常模式]切换到[插入模式]2.3 [插入模式]切换至[正常模式]2.4 [正常模式]切换至[底行模式…...

解锁NVMe性能:Ventoy突破高速存储启动限制的技术实践

解锁NVMe性能&#xff1a;Ventoy突破高速存储启动限制的技术实践 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 在企业级服务器和高端工作站环境中&#xff0c;你是否遇到过NVMe&#xff08;非易失性…...

当FileZilla遇见AI:用快马平台打造能听懂人话的智能文件传输助手

今天想和大家分享一个有趣的实践&#xff1a;如何用AI给传统的FTP工具FileZilla"装上大脑"&#xff0c;让它变成一个能听懂人话的智能文件传输助手。这个想法源于我日常工作中频繁的文件传输需求&#xff0c;每次手动分类、压缩、检查敏感内容实在太费时间了。 智能文…...

Aide让大师帮你改代码:专家级代码优化完全解析

Aide让大师帮你改代码&#xff1a;专家级代码优化完全解析 【免费下载链接】aide Conquer Any Code in VSCode: One-Click Comments, Conversions, UI-to-Code, and AI Batch Processing of Files! 在 VSCode 中征服任何代码&#xff1a;一键注释、转换、UI 图生成代码、AI 批量…...

PixEz-flutter网络优化实战:3个技巧打造流畅的二次元内容体验

PixEz-flutter网络优化实战&#xff1a;3个技巧打造流畅的二次元内容体验 【免费下载链接】pixez-flutter 一个支持免代理直连及查看动图的第三方Pixiv flutter客户端 项目地址: https://gitcode.com/gh_mirrors/pi/pixez-flutter 作为一款支持免代理直连的第三方Pixiv客…...

高考数学97分,我的“数学直觉“比140分更好用:链表指针操作的代数思维:从离散数学看单链表

目录 一&#xff0c;序言 二&#xff0c;数学思维 三&#xff0c;核心概念 1. 节点&#xff08;Node&#xff09; 2. 头指针&#xff08;Head Pointer&#xff09; 3. 链式存储 4. 链表类型 5. 核心操作 6. 内存管理 7. 与顺序表的对比 数学思维&#xff1a; 8. 应用场景 四…...

7个强力工具:Masa Mods中文汉化包让Minecraft模组说中文

7个强力工具&#xff1a;Masa Mods中文汉化包让Minecraft模组说中文 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为Minecraft中Masa系列模组的英文界面而烦恼吗&#xff1f;这个…...

Qwen3-14B镜像惊艳效果:复杂SQL生成+数据库Schema理解实测

Qwen3-14B镜像惊艳效果&#xff1a;复杂SQL生成数据库Schema理解实测 1. 开篇&#xff1a;当大模型遇上数据库 想象一下这样的场景&#xff1a;你刚接手一个陌生的数据库系统&#xff0c;面对几十张表、上百个字段&#xff0c;却需要快速写出复杂的多表关联查询。传统方式可能…...

雯雯的后宫-造相Z-Image-瑜伽女孩部署避坑指南:Xinference加载超时与日志定位技巧

雯雯的后宫-造相Z-Image-瑜伽女孩部署避坑指南&#xff1a;Xinference加载超时与日志定位技巧 1. 项目简介与部署概述 雯雯的后宫-造相Z-Image-瑜伽女孩是一个专注于生成瑜伽主题女孩图片的AI模型&#xff0c;基于Z-Image-Turbo的LoRA版本构建。这个镜像提供了完整的文生图服…...

OneAPI开源大模型网关部署:支持国产数据库(达梦/人大金仓)存储用户与渠道数据

OneAPI开源大模型网关部署&#xff1a;支持国产数据库&#xff08;达梦/人大金仓&#xff09;存储用户与渠道数据 1. 引言&#xff1a;为什么你需要一个统一的大模型网关&#xff1f; 如果你正在使用或者计划使用大模型&#xff0c;大概率会遇到这样的烦恼&#xff1a;每个厂…...

AutoGLM-Phone-9B环境搭建教程:双显卡配置详解,轻松启动模型服务

AutoGLM-Phone-9B环境搭建教程&#xff1a;双显卡配置详解&#xff0c;轻松启动模型服务 1. 环境准备与硬件要求 1.1 硬件配置要求 AutoGLM-Phone-9B作为一款多模态大语言模型&#xff0c;对硬件配置有特定要求&#xff1a; 显卡配置&#xff1a;至少需要2块NVIDIA RTX 409…...