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

const关键字的作用?

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

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

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

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

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

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

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

相关推荐
oneDay++9 分钟前
# IntelliJ IDEA企业版集成AI插件「通义灵码」全流程详解:从安装到实战
java·经验分享·学习·intellij-idea·学习方法
代码小将9 分钟前
Leetcode76覆盖最小子串
笔记·学习·算法
努力的小帅12 分钟前
C++_STL_map与set
开发语言·数据结构·c++·学习·leetcode·刷题
yezipi耶不耶25 分钟前
Rust入门之高级Trait
开发语言·后端·rust
邝邝邝邝丹26 分钟前
React学习———React Router
前端·学习·react.js
yuhouxiyang33 分钟前
学习海康VisionMaster之直方图工具
学习·计算机视觉
双叶83637 分钟前
(C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)
c语言·开发语言·数据结构·c++·windows
为美好的生活献上中指43 分钟前
java每日精进 5.14【参数校验】
java·开发语言·spring boot·tomcat
末央&1 小时前
【数据结构】手撕AVL树(万字详解)
数据结构·c++
序属秋秋秋1 小时前
《数据结构初阶》【二叉树 精选9道OJ练习】
c语言·数据结构·c++·算法·leetcode