美文网首页C++步步为营
C\C++中函数后面加const

C\C++中函数后面加const

作者: 世界上的一道风 | 来源:发表于2019-08-04 10:27 被阅读0次

    c++ 在函数后加const的意义:
       我们定义的类的成员函数中,常常有一些成员函数不改变类的数据成员,也就是说,这些函数是"只读"函数,而有一些函数要修改类数据成员的值。如果把不改变数据成员的函数都加上const关键字进行标识,显然,可提高程序的可读性。其实,它还能提高程序的可靠性,已定义成const的成员函数,一旦企图修改数据成员的值,则编译器按错误处理。 const成员函数和const对象 实际上,const成员函数还有另外一项作用,即常量对象相关。对于内置的数据类型,我们可以定义它们的常量,用户自定义的类也一样,可以定义它们的常量对象。

    1、非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误)
    2、表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中, 任意修改它所在的类的成员的操作都是不允许的(因为隐含了对this指针的const引用);
    3、唯一的例外是对于mutable修饰的成员。 加了const的成员函数可以被非const对象和const对象调用,但不加const的成员函数只能被非const对象调用

    char getData() const{return this->letter;}
    
    • c++ 函数前面和后面 使用const的作用:
      前面使用const 表示返回值为const
      后面加const表示函数不可以修改class的成员
      请看这两个函数:
    const int getValue();
    int getValue2() const;
    
    
    
    /*
     * FunctionConst.h
     */
    
    #ifndef FUNCTIONCONST_H_
    #define FUNCTIONCONST_H_
    
    class FunctionConst {
    public:
        int value;
        FunctionConst();
        virtual ~FunctionConst();
        const int getValue();
        int getValue2() const;
    };
    
    #endif /* FUNCTIONCONST_H_ */
    
    /*
     * FunctionConst.cpp 
     */
    
    #include "FunctionConst.h"
    
    FunctionConst::FunctionConst():value(100) {
        // TODO Auto-generated constructor stub
    
    }
    
    FunctionConst::~FunctionConst() {
        // TODO Auto-generated destructor stub
    }
    
    const int FunctionConst::getValue(){
        return value;//返回值是 const, 使用指针时很有用.
    }
    
    int FunctionConst::getValue2() const{
        //此函数不能修改class FunctionConst的成员函数 value
        value = 15;//错误的, 因为函数后面加 const
        return value;
    }
    

    原文:https://blog.csdn.net/smf0504/article/details/52311207

    相关文章

      网友评论

        本文标题:C\C++中函数后面加const

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