zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    java对对象或者map的属性进行排序
    java生成32的md5签名串
    mybatis检测mysql表是否存在
    eureka服务注册发现流程和核心参数
    概率分布之间的距离度量以及python实现(三)
    距离度量以及python实现(二)
    距离度量以及python实现(一)
    tensorflow 1.0 学习:用别人训练好的模型来进行图像分类
    tensorflow 1.0 学习:模型的保存与恢复(Saver)
    tensorflow 1.0 学习:参数和特征的提取
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12371166.html
Copyright © 2011-2022 走看看