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

C++ ——const关键字

const关键字通常表示只读,不可修改,可以保证数据的安全性 

1、修饰局部变量

const修饰的局部变量,叫做常局部变量,表示该局部变量不可被修改,这种用法常用于引用参数

2、修饰成员变量

const修饰的成员变量,叫常成员变量,表示该成员变量的值无法被修改

特点:

        (1)该成员变量不可修改

        (2)两种初始化方式:直接初始化、构造初始化列表(不能通过构造函数),推荐使用构造初始化列表

#include <iostream>
using namespace std;
class Test{
private:
    int num1;  //普通成员变量
    const int num2;  //常成员变量
public:
    //构造初始化列表
    Test(int num1,int num2)
        :num1(num1),num2(num2){}
    void fun(){
        cout<<this->num2<<endl;
//        this->num2=90;  //报错,常成员变量不可修改
    }
};
int main(){
    Test t1(1,2);
    Test t2(5,6);
    t1.fun();
    t2.fun();
    return 0;
}

3、修饰成员函数

const修饰的成员函数,叫常成员函数

特点:

        (1)可以访问任何成员变量,但是不可以修改成员变量的值

        (2)只能调用常成员函数,不能调用非const修饰的成员函数

        (3)如果成员函数不需要修改成员变量的值,推荐使用const修饰,例如属性的读接口,体现的是安全性

#include <iostream>
using namespace std;
class Test{
private:
    int num1;  //普通成员变量
    const int num2;  //常成员变量
public:
    //构造初始化列表
    Test(int num1,int num2)
        :num1(num1),num2(num2){}
    //常成员函数
    void fn1()const{
        cout<<"普通成员变量:"<<this->num1<<endl;
        cout<<"常成员变量:"<<this->num2<<endl;
//        this->num1;  //报错,因为常成员函数不能修改任何变量的值
    }
};
int main(){
    Test t1(1,2);
    Test t2(5,6);
    t1.fn1();
    return 0;
}

4、修饰对象

const修饰的对象,叫做常对象

格式:const 类名 对象名  或者  类名 const 对象名

特点:常对象不能修改属性值,只能调用常成员函数

相关文章:

  • 探秘Transformer系列之(3)---数据处理
  • EasyRTC:智能硬件适配,实现多端音视频互动新突破
  • 生成艺术与审美图灵测试:当算法成为艺术创作者
  • resnet与yolo
  • Java进阶篇之Lambda表达式
  • 【项目】基于STM32F103C8T6的四足爬行机器人设计与实现(源码工程)
  • WPF 圆角按钮的实现
  • Elasticsearch AI Assistant 集成 DeepSeek,1分钟搭建智能运维助手
  • Python MoviePy 视频处理全攻略:从入门到实战案例
  • 详解 本机安装多个MySQL服务【为后续大数据量分库分表奠定基础,以mysql8.0为例,附有图文】
  • 从ARM官方获取自己想要的gcc交叉编译工具链接(Arm GNU Toolchain),并在Ubuntu系统中进行配置
  • java基础语知识(8)
  • 如何系统成为高级Qt工程师?
  • RadASM环境,win32汇编入门教程之六
  • HDFS应用-后端存储cephfs-java-API
  • qt实现文字跑马灯效果
  • Windows服务器搭建时间同步服务
  • QT QLineEdit 如何支持文件拖放
  • DeepSeek R1生成图片总结2(虽然本身是不能直接生成图片,但是可以想办法利用别的工具一起实现)
  • Unity Mirror 多房间匹配
  • 横跨万里穿越百年,《受到召唤·敦煌》中张艺兴一人分饰两角
  • 反犹、资金与抗议:特朗普的施压如何撕裂美国大学?|907编辑部
  • 排污染黑海水后用沙土覆盖黑泥?汕尾环保部门:非欲盖弥彰
  • 沈阳一超市疑借领养名义烹食流浪狗,当地市监局:已收到多起投诉
  • 美股全线收涨:道指涨逾千点,纳斯达克中国金龙指数涨5.4%
  • 全球医药股普跌,A股创新药板块下挫