【C++】const修饰成员函数

const修饰成员函数

常函数:

成员函数后加const后我们称为这个函数为常函数

常函数内不可以修改成员属性

成员属性声明时加关键字mutable后,在常函数中依然可以修改

c 复制代码
class Animal {
public:
    void fun1(){
       //这是一个普通的成员函数         
    }
    void fun2() const{
        //这是一个常函数
        //m_A = 100;//报错,常函数不可修改成员属性
        m_B = 100;//正常,常函数可以修改mutable修饰的成员属性
    }

public:
    int m_A;
    mutable int m_B; //可修改 可变的
}

常对象:

声明对象前加const称该对象为常对象

常对象只能调用常函数

c 复制代码
int main(){
    const Animal dog;//实例一个常对象
    //dog.mA = 100; //常对象不能修改成员变量的值,但是可以访问
    dog.m_B = 100; //但是常对象可以修改mutable修饰成员变量
    //dog.fun1();//报错,常对象只能调用常函数
    dog.fun2();//常对象只能调用常函数
}
相关推荐
@福者13 小时前
C++ QT 入门
开发语言·c++·qt
沧海一笑-dj13 小时前
【C++】Visual Studio 2026下载和安装
c++·visual studio·vs·vs2026
HugoStudio_SWAN13 小时前
洛谷 P1321 单词覆盖还原——从蜡板上的密信到数字水印
c++·学习·程序人生·算法
励志不掉头发的内向程序员13 小时前
【LibreCAD 2D架构】从鼠标点击到屏幕像素:LibreCAD绘图架构全链路解析之Action与命令系统
linux·开发语言·c++·qt·学习·系统架构
码匠许师傅14 小时前
【设计模式精讲】15.享元模式(Flyweight)
c++·设计模式·享元模式·uml
pingglala14 小时前
C++线程安全队列对比
开发语言·c++
Demon--hx14 小时前
C++访问权限问题
开发语言·c++
乐观勇敢坚强的老彭14 小时前
c++信息学竞赛数组大小规划与避坑速查表
开发语言·c++
深海向晚14 小时前
NX二次开发:递归遍历特征组并收集所有特征
c++
重生之小比特14 小时前
【初阶C++】list
开发语言·c++·list