【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();//常对象只能调用常函数
}
相关推荐
傲世仙尊22 分钟前
赋值运算符重载-从无到有与从有到有六大函数收官
c++
晴天的雨.99226 分钟前
【C++】模板进阶
开发语言·c++·算法
Shadow(⊙o⊙)35 分钟前
仿muduo实现高并发服务器——时间轮timewheel.cpp
c语言·c++
WL学习笔记13 小时前
C & C++ 内存管理
c++·c++内存管理
宛 禾15 小时前
Qt 控件入门:QLabel 从拖拽到对象树,一篇讲透
c++·qt·学习
hetao173383715 小时前
联盟场-提高组-R7 & ZYZSC-S-Round 11
c++·算法
程序喵大人15 小时前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
局部有解16 小时前
Hot100 - 三数之和
数据结构·c++·算法
longlongzihan16 小时前
C++ 常用数据结构速查:vector、stack、queue、list、树、图、哈希表等声明与核心操作
数据结构·c++·list
别动我齐刘海16 小时前
实时控制学习2
linux·c++·人工智能·学习·算法