• C++ const使用总结


    这里针对C++中const的一些一般用法进行一下简单的总结

    一、定义常量     

    常量不可修改     

    const int val = 5int const val = 5;

    与#define宏定义常量的区别:
    (1)const常量具有类型,编译器可以进行安全检查;#define宏定义没有数据类型,只是简单的字符串替换,不能进行安全检查。

    (2)有些集成化的调试工具能对const常量进行调试,对宏常量不能调试

    二、修饰指针       

        

    1const int* p;         //指针p指向的内容是常量,不可改变。2int* const p;          //指针本身是一个常量,不可改变。3const int* const p;   //指针本身和指向的内容都是常量,都不可以改变。

    区分方法,*p代表对象内容,p代表指针本身,看const修饰的是哪个。


    三、在函数中使用const    

    修饰函数参数    

    void function(const int Var);  

    表明参数在函数体内不能被修改,但此处没有任何意义,Var本身就是形参,在函数内不会改变。
    包括传入的形参是指针也是一样。
    (1)使用引用参数,可以防止创建副本,减少内存开销,同时可以在函数中对引用参数修改,函数结束后,引用参数的修改仍然存在。
    (2)如果为了防止对引用参数进行修改,可以对该参数加上const关键字。

    修饰函数返回值           

    与修饰普通变量和指针意义差不多,而在传引用时,如果不希望函数返回值被改变,就可以添加关键字 const

    四、在类中使用const     

    修饰类成员变量     

     class A
     {               
        const int nValue;       
     }
        

      (1)成员常量不可被修改。

    (2)只能在初始化列表中被赋值。

    修饰类成员函数     

     class A
     {
        void function()const;
     }

    (1)常成员函数, 它不改变对象的成员变量. 代表只读函数,增加程序的可读性。                
      (2)不能调用类中任何非const成员函数。

  • 相关阅读:
    JAVA并发之ReentrantLock源码(一)
    java并发之线程池
    Quine--输出程序源码的程序(java)
    【leetcode】Weekly Contest 92
    【java集合类】ArrayList和LinkedList源码分析(jdk1.8)
    【leetcode】Weekly Contest 91
    牛客2018.6模拟考编程题
    MFC 完全自定义控件
    图形学中求平面方程系数以及法向量
    std::function解决函数重载绑定
  • 原文地址:https://www.cnblogs.com/wkfvawl/p/10973578.html
Copyright © 2020-2023  润新知