首页 > 编程语言 >C++中const关键字的作用?

C++中const关键字的作用?

时间:2024-08-02 20:26:19浏览次数:11  
标签:const 常量 int value 关键字 C++ 修饰 变量

const关键字的作用?

const主要用来定义常量和保护变量不被修改:

  • 定义常量:使用const可以定义一个不可修改的常量,const常量的默认链接方式是内部链接(只有该源文件可见),可以将其定义在头文件中而不会引起重复定义问题,每个包含该头文件的源文件都各自拥有一个const常量的副本。

    // constants.h
    const int MAX_VALUE = 100;
    
  • 修饰变量/成员变量:用const修饰一个变量,阻止这个变量被改变,在定义变量时必须初始化。

    // 变量
    const int value;
    
    // 成员变量
    class MyClass {
    public:
        MyClass(int v) : value(v) {}
        void printValue() const {
            std::cout << value << std::endl;
        }
    private:
        const int value;
    };
    
    
  • 修饰函数参数:用const修饰一个函数的参数,表示在函数内部不能修改这个参数,一般搭配引用或指针使用。

    void printValue(const int value) {
        // value不能在函数内部被修改
        printf("%d\n", value);
    }
    
  • 修饰指针变量const也可以修饰指针变量,分为:常量指针和指针常量。

    const int* value;	// 常量指针,value可以改变指向,,但不能改变所指向地址的变量值,底层const
    int* const value;	// 指针常量,可以改变指向地址的变量值,但不能改变指向,顶层const
    
  • 修饰返回值:表示返回的值不能修改,通常用于返回引用类型。

    class MyClass {
    public:
        const int& getValue() const {
            return value;
        }
    private:
        int value;
    };
    
  • 修饰类成员函数:表示该成员函数不能修改类的成员变量,显式用mutable修饰的除外。

标签:const,常量,int,value,关键字,C++,修饰,变量
From: https://blog.csdn.net/shenfenxihuan/article/details/140879634

相关文章

  • static关键字day07
    static关键字的使用及其注意事项:1、随着类的加载而加载到静态区,优先对象而存在的,静态成员变量会被系统赋予默认值2、被static修饰的成员,又称之为类成员(被静态修饰的成员变量或者成员方法),可以直接通过类名的方式进行访问3、非静态的成员方法中既可......
  • 【C++】引用和指针的不同点
    引用和指针的不同点:(从使用的角度去对比,按自己的理解的角度去梳理,硬记很难记全,虽然不赢记大概率也记不全)1.引用概念上定义一个变量的别名,指针存储一个变量地址。2.引用在定义时必须初始化,指针没有要求。3.引用在初始化时引用一个实体后,就不能再引用其他实体;而指针可以在......
  • 【C++】运算符重载
    一、示例如果我想实现以下代码,按照下面的写法是不能正常运行的。classPerson{public:intm_A;intm_B;};Personp1;p1.m_A=10;p1.m_B=10;Personp2;p2.m_A=10;p2.m_B=10;Personp3;p3=p1+p2;按照以上学过的内容,可以自己写成员函数,实......
  • C++高级功能
    Lambda匿名函数[只读列表](参数列表){函数体}例如:sort(a+1,a+n,[](constData&x,constData&y){returnx.val<y.val;}constintk=5;autocalc=[k](constint&x){returnx*k;}template模板在struct/namespace/函数前加入template<typ......
  • Windows图形界面(GUI)-MFC-C/C++ - 静态文本框(Static Text) - CStatic
    公开视频-> 链接点击跳转公开课程博客首页-> ​​​链接点击跳转博客主页目录静态文本框(StaticText)-CStatic基本概念成员函数示例代码静态文本框(StaticText)-CStatic基本概念静态文本框是一种用于显示文本的控件,用户不能编辑其中的文本。静态文本框......
  • window配置onnxruntime,运行c++版本
    为了使用ONNX-Runtime-Inference这个项目,但是我缺少onnxruntime这个库,网上找了很多教程,但是大多数都是关于linux的,这里简单记录一下我的配置流程找到onnxruntime的release版本开始想着自己去找源码编译,发现这对于新手来说,是个坑,因为源码里面有些库是缺失的,需要自己去下载,并更改......
  • c语言学习 volatile __attribute__ const
    1volatile在C语言中,volatile是一个类型修饰符,用于告诉编译器某个变量的值可能会被外部因素改变,从而避免编译器对该变量进行优化。这在多线程编程或硬件编程中非常重要。用法volatileintmyVar;何时使用volatile硬件寄存器:当变量映射到某个硬件寄存器。中断服务例......
  • 【C++】学习笔记——智能指针
    文章目录二十一、智能指针1.内存泄漏2.智能指针的使用及原理RAII智能指针的原理auto_ptrunique_ptrshared_ptrshared_ptr的循环引用weak_ptr删除器未完待续二十一、智能指针1.内存泄漏在上一章的异常中,我们了解到如果出现了异常,会中断执行流,跳转到catch处。但......
  • 【C++】学习笔记——特殊类的设计
    文章目录二十二、特殊类的设计1.请设计一个类,不能被拷贝2.请设计一个类,只能在堆上创建对象3.请设计一个类,只能在栈上创建对象4.请设计一个类,不能被继承5.请设计一个类,只能创建一个对象(单例模式)未完待续二十二、特殊类的设计1.请设计一个类,不能被拷贝拷贝......
  • 【C++庖丁解牛】C++特殊类设计 | 单例模式
    ......