美文网首页
C、C++ const

C、C++ const

作者: Kael_Zhang的安卓笔记 | 来源:发表于2023-03-09 09:43 被阅读0次

    const很重要,也很难用!

    const是衡量一个程序员是否老道的一个标准,它除了可以修饰变量之外,还可以修饰函数

    const修饰变量(常量,可读不可写)

    TYPE const ValueName = value; 
    const TYPE ValueName = value;
    

    const修饰引用

    const TYPE & ValueName = value;
    

    const 引用的目的是,禁止通过修改引用值来改变被引用的对象,const变量不能绑到非const引用!

    const修饰指针

    • 指针本身是常量不可变
    (char*) const pContent; 
    const (char*) pContent;
    
    • 指针所指向的内容是常量不可变
    const (char) *pContent; 
    (char) const *pContent;
    
    • 两者都不可变
    const char* const pContent;
    

    还有其中区别方法,沿着号划一条线:
    如果const位于
    的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
    如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。

    const修饰函数

    const int& fun(int& a); //修饰类的成员返回值(比如:类的getter方法)
    int& fun(const int& a); //修饰形参(比如:类的setter方法)
    int& fun(int& a) const{} //const成员函数
    
    • 修饰类的成员返回值
      这种多是修饰返回值是引用类型的情况下,为了避免返回值被修改的情况,返回值使用引用多半减少内存拷贝,没有这方面的考虑,直接返回值也是一样的
    • 修饰形参
      形参使用引用,可以减少内存拷贝,节省内存,并且可以起到改变实参的目的。不过有的时候我们并不希望改变实参的值,就要加上const关键字
    • const 成员函数中不能对该类的任何成员变量进行修改,const成员函数中不能调用该类的非const成员函数

    相关文章

      网友评论

          本文标题:C、C++ const

          本文链接:https://www.haomeiwen.com/subject/mhkoldtx.html