【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();//常对象只能调用常函数
}
相关推荐
Mister西泽21 分钟前
C++ Primer Plus 第六版 编程练习题及详细答案
开发语言·c++·学习·visual studio
Qt程序员29 分钟前
从上电到系统就绪:ARM+U-Boot 嵌入式 Linux 启动流程
linux·运维·c++·内核·设备树·嵌入式·ram
cany10001 小时前
C++ -- lambda捕获
c++
Kilicc_2 小时前
C++知识点—03 <C++宏代码生成/宏反射写法>
c++
RuiZN4 小时前
UE5 UObject类详解
c++·ue5
ZhangShao06074 小时前
题解:AT_abc459_e
c++
chengO_o4 小时前
AVL树详解与实现(C++)
数据结构·c++·avl树·平衡二叉搜索树
玉树临风ives4 小时前
atcoder ABC 458 题解
数据结构·c++·算法
chengO_o4 小时前
STL关联式容器:map 与 set 的使用
c++·stl·set·map·平衡二叉搜索树
charlie1145141915 小时前
现代C++特性指南(5)——RAII 深入理解:资源管理的基石
开发语言·c++·现代c++