• 函数末尾加入const的作用


    #include <iostream>
    
    using namespace std;
    
    class Test
    
    {
        int num;
    
    public:
    
        Test()
    
        {
            num=10;
    
        }
    
        void print1()
    
        {
            cout<<num<<endl;
    
        }
    
        void print2() const
    
        {
            cout<<num<<endl;
    
        }
    
        void print3() const
    
        {
            num-=10;//ERROR 1.const函数内部不能修改成员变量
    
            cout<<num<<endl;
    
        }
    
    };
    
    int main()
    
    {
        Test a;
    
        a.print1();
    
        a.print2();
    
        a.print3();
    
     
    
        const Test b;
    
        b.print1();//ERROR 2.const对象不能访问非const函数
    
        b.print2();
    
        b.print3();
    
        return 0;
    
    }
    

    示例代码有两处ERROR:

    1.const函数内部不能修改成员变量

    2.const对象不能访问非const函数

    那么,函数末尾加const的作用是什么?

    声明一个成员函数的时候用const关键字是用来说明这个函数是 "只读(read-only)"函数,也就是说明这个函数不会修改任何数据成员(object)。 为了声明一个const成员函数, 把const关键字放在函数括号的后面。声明和定义的时候都应该放const关键字。

    任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误,这无疑会提高程序的健壮性。

    同样,如果把不改变数据成员的函数都加上const关键字进行标识,显然,可提高程序的可读性,一看就知道这个函数的大概功能。
    ————————————————
    版权声明:本文为CSDN博主「军说网事」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wujunokay/article/details/90720808

  • 相关阅读:
    Linux进阶之正则,shell三剑客(grep,awk,sed),cut,sort,uniq
    生成下拉列表
    获取服务器时间
    Web窗体(WebForm)
    Session
    Cookie
    Server属性
    Response缓冲区
    小案例
    Web窗体(WebForm)的删除和修改
  • 原文地址:https://www.cnblogs.com/sggggr/p/15684458.html
Copyright © 2020-2023  润新知