• const关键字


    历史

    #define的弊端太多,于是引入了const,所以尽量使用const替代define;

    作用范围

    const定义的常量的作用域类似与static,只能被当前文件访问。

    作用

    1.修饰变量,说明该变量不可以被改变;
    2.修饰指针,分为指向常量的指针和指针常量;
    3.常量引用,经常用于形参类型,即避免了拷贝,又避免了函数对值的修改;
    4.修饰成员函数,说明该成员函数内不能修改成员变量。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42

    class
    {
    private:
    const int a; // 常对象成员,只能在初始化列表赋值

    public:
    // 构造函数
    A() { };
    A(int x) : a(x) { }; // 初始化列表

    // const可用于对重载函数的区分
    int getValue(); // 普通成员函数
    int getValue() const; // 常成员函数,不得修改类中的任何数据成员的值
    };

    void function()
    {
    大专栏  const关键字nt">// 对象
    A b; // 普通对象,可以调用全部成员函数
    const A a; // 常对象,只能调用常成员函数、更新常成员变量
    const A *p = &a; // 常指针
    const A &q = a; // 常引用

    // 指针
    char greeting[] = "Hello";
    char* p1 = greeting; // 指针变量,指向字符数组变量
    const char* p2 = greeting; // 指针变量,指向字符数组常量
    char* const p3 = greeting; // 常指针,指向字符数组变量
    const char* const p4 = greeting; // 常指针,指向字符数组常量
    }

    // 函数
    void function1(const int Var); // 传递过来的参数在函数内不可变
    void function2(const char* Var); // 参数指针所指内容为常量
    void function3(char* const Var); // 参数指针为常指针
    void function4(const int& Var); // 引用参数在函数内为常量

    // 函数返回值
    const int function5(); // 返回一个常数
    const int* function6(); // 返回一个指向常量的指针变量,使用:const int *p = function6();
    int* const function7(); // 返回一个指向变量的常指针,使用:int* const p = function7();
  • 相关阅读:
    Codeforces Gym 100463D Evil DFS
    codeforces Gym 100187J J. Deck Shuffling dfs
    Codeforces Round #308 (Div. 2) C. Vanya and Scales dfs
    Codeforces Round #306 (Div. 2) B. Preparing Olympiad dfs
    Codeforces Round #402 (Div. 2)D. String Game 二分
    hdu 4499 Cannon dfs
    cdoj 15 Kastenlauf dfs
    hdu5254 棋盘占领 dfs
    zoj 3620 Escape Time II dfs
    CDOJ 215 吴队长征婚 DFS+剪枝
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12371166.html
Copyright © 2020-2023  润新知