zoukankan      html  css  js  c++  java
  • C++的const限定符

     一、const常量

    const int a=123;//编译时初始化

    const int a=get_size();//运行时初始化

    a=111//错误,a是常量对象,不能改变了

    const int b;//错误

    • const对象必须初始化。
    • const对象初始化后,不能通过const对象改变其指向的值。

     二、对const和const引用的初始化

    初始化常量或常量引用时允许用任意表达式作为初始值,只要该表达式结果能转换成左式的类型就行,注意与一般引用的区别

    int i=1;

    const int &r1=i;

    const int &r2=2;//正确

    int &r2=2;//错误

    const int &3=r1*2;

    double dv=3.14;

    const int b=dv;

    const int &5=dv;

    三、const引用与非常量引用的区别

    对常量的引用不能用于修改它指向的对象,注意与初始化的区别:

    const int i=11;

    const int &ri=i;//正确,引用和对象都是常量

    int &r2=i;//错误,用非常量引用指向常量,会对i修改

    int j=22;

    const int &rj=j;//正确,但不能通过rj修改j的值

    int &rj2=j;//正确,可以通过rj2修改j的值 

    四、const对象在多个文件下共享

    声明和定义都添加extern关键字,只用定义一次。

    extern const int bufSize=fun();//file_1.cc中定义并初始化了一个常量,extern限定它可以被其他文件使用。

    extern const int bufSize;//file-1.h的声明也使用了extern,表明变量并非本文件独有,它的定义在别处。

  • 相关阅读:
    朱刘算法---有向图的最小生成树
    527D Clique Problem 判断一维线段没有两辆相交的最大线段数量
    Tex中的引号
    DAY 96 flask05
    DAY 95 flask04
    DAY 94 flask03
    DAY 93 flask02
    DAY 92 flask01
    DAY 91 爬虫05
    DAY 90 爬虫04
  • 原文地址:https://www.cnblogs.com/StormWendy/p/8391138.html
Copyright © 2011-2022 走看看