• const 总结


    一、const修饰普通变量

    定义某一变量为常数,必须初始化,一旦定义不可再修改

    二、const修饰指针

    假设指针p, 根据const在*左侧还是右侧判定。在左侧const int* p=&a;则指针指向的值a不可被改变,但指针内容可以变,如int b=10; p=&b;。在右侧,则指针内容不可修改,如之前指向变量a,那么只能一直指向a,不能改变。简单记忆就是左定值,右定向

    三、const修饰类成员变量

    const修饰成员变量,不能在声明时初始化,只能通过构造函数初始化,且不能通过赋值来初始化,唯一的格式如下

    class A{
    public:
    	const int Size;
    	A(int s);
    	~A();
    };
    
    A::A(int s):Size(s){}
    
    //错误初始化!!!!!!!!!!
    A::A(int s){Size=s;}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    四、const修饰类静态成员变量

    #include 
    
    class Year{ 
    private: int y; 
    public: static int const Inity;
    public:  Year() {  y=Inity; } 
    };
    
    int const Year::Inity=1997;//静态变量的赋值方法,注意必须放在类外定义
    
    void main(){ 
    cout<<Year.Inity<<endl;//注意调用方式,这里是用类名调用的。
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    五、const对象,常量对象

    const MyClass p;,该对象只能调用const成员函数,不能调用普通成员函数。

    六、const函数:

    (1) const 在函数中根据修饰位置分为三种,const int fun(const int a) const
    (2) const成员函数不可以修改对象的数据,不管对象是否具有const性质。它在编译时,以是否修改成员数据为依据,进行检查。
    (3) 然而加上mutable修饰符的数据成员,对于任何情况下通过任何手段都可修改,自然此时的const成员函数是可以修改它的。

    6.1 修饰返回值:const int fun();,不能修改返回值,即返回值不能是左值。
    6.2 修饰函数形参:int fun(const int a);,函数体内不能修改形参a的值。
    6.3 修饰类的成员函数:int fun() const;, 函数体内不能修改成员变量的值。只有成员函数才可以在后面加const,普通函数后加const无意义。此外,const函数只能调用const函数。
  • 相关阅读:
    Hexagon_V65_Programmers_Reference_Manual(14)
    React报错之You provided a `checked` prop to a form field
    CSS实现鼠标悬停图片上升显示
    ES8311 - 音频编解码芯片调试
    千亿市场规模医疗美容行业的水究竟有多浑?
    常见python脚本集合
    【Arduino】实验使用ESP32单片机根据光线变化控制LED小灯开关(图文)
    NLP-新词挖掘
    win11 搭建Apache webdav 设置用户名密码 加密授权访问以及多个不同目录访问
    Springboot实现国际化以及部署Linux不生效问题
  • 原文地址:https://blog.csdn.net/GENGXINGGUANG/article/details/126814575