【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();//常对象只能调用常函数
}
相关推荐
胡萝卜3.04 小时前
掌握C++ map:高效键值对操作指南
开发语言·数据结构·c++·人工智能·map
电子_咸鱼5 小时前
【STL string 全解析:接口详解、测试实战与模拟实现】
开发语言·c++·vscode·python·算法·leetcode
月夜的风吹雨7 小时前
【封装红黑树】:深度解析map和set的底层实现
c++·set·map·封装
列逍7 小时前
深入理解 C++ 智能指针:原理、使用与避坑指南
开发语言·c++
C语言小火车8 小时前
C/C++ 指针全面解析:从基础到进阶的终极指南
c语言·开发语言·c++·指针
wefg19 小时前
【C++】特殊类设计
开发语言·c++
帅中的小灰灰9 小时前
C++编程原型设计模式
开发语言·c++
凌康ACG9 小时前
Sciter窗口间状态事件交互(四)
c++·sciter
“αβ”10 小时前
MySQL库的操作
linux·服务器·网络·数据库·c++·mysql·oracle
月夜的风吹雨10 小时前
【 C++哈希容器】:unordered_map与unordered_set深度解析
c++·哈希算法·unordered_map·unordered_set