• c++中的const函数


    const变量的基础:(这里给出一个小例子)

    const *p://*p不可以改
    
    
    int *const p;//p不可以改
    
    
    const int *const p//二者都不可以改
    

    正文:

    在C++中,只有被声明为const的成员函数才能被一个const类对象调用。

            要声明一个const类型的类成员函数,只需要在成员函数参数列表后加上关键字const,例如,

    class Screen {  
    public:  
       char get() const;  
    };  
    

          在类体之外定义const成员函数时,还必须加上const关键字,例如  

    char Screen::get() const {  
       return _screen[_cursor];  
    }  
    

       若将成员成员函数声明为const,则该函数不允许修改类的数据成员。例如,

    class Screen {  
    public:
        int a;
    public:  
     Screen()
    {
        a=0;
    }
    void ok() const 
    {
        a=1;//错误
     }  
    
    };  
    

     下面的这个例子比较经典:

    int a=0;
    const int *p=&a;//把一个可以修改的变成不可以修改的----正确
    
    
    const int b=100;
    int *p=&b; //把一个不可以修改的变成可以修改了----错误
    

     总结:

    1.const成员函数可访问const成员变量和普通成员变量,但不能修改任何变量。检查发生在编译时。

     普通函数可访问const成员变量,不可以修改。.(在访问的时候会自动转成const的)

    (成员函数和变量之间都是可访问不可以修改)

    2.const对象只能访问const成员函数,

    (const对象只可访问const的,也只可以被const的访问)

    3.const对象的成员变量不可以修改。

    4.const成员函数不能调用非const成员函数,因为非const成员函数可以会修改成员变量

    5.普通成员函数可以访问非const对象的普通数据成员、const数据成员,但不可以访问const对象的任意数据成员。(除了此点外,普通的都可以访问const的)

    6.const成员函数只是用于非静态成员函数,不能用于静态成员函数。

    7.const成员函数的const修饰不仅在函数声明中要加(包括内联函数),在类外定义出也要加。

    8.作为一种良好的编程风格,在声明一个成员函数时,若该成员函数并不对数据成员进行修改操作,应尽可能将该成员函数声明为const 成员函数。

    参考资料:

    https://www.cnblogs.com/shenckicc/p/6847103.html

    https://www.cnblogs.com/myseasky/p/7458064.html

  • 相关阅读:
    ssh登录
    wireless tools的使用
    Ubuntu中的minicom
    ubuntu 下交叉编译环境的搭建
    两个队列实现一个栈
    二叉树节点的插入
    二叉树的非递归遍历
    acwing 66. 两个链表的第一个公共结点
    acwing 60. 礼物的最大价值
    acwing 55. 连续子数组的最大和
  • 原文地址:https://www.cnblogs.com/curo0119/p/8534299.html
Copyright © 2020-2023  润新知