c++ 在类函数后加const的意义

咱们定义的类的成员函数中,经常有一些成员函数不改变类的数据成员,也就是说,这些函数是"只读"函数,而有一些函数要修改类数据成员的值。若是把不改变数据成员的函数都加上const关键字进行标识,显然,可提升程序的可读性。其实,它还能提升程序的可靠性,已定义成const的成员函数,一旦企图修改数据成员的值,则编译器按错误处理。 const成员函数和const对象 实际上,const成员函数还有另一项做用,即常量对象相关。对于内置的数据类型,咱们能够定义它们的常量,用户自定义的类也同样,能够定义它们的常量对象。
一、非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误)
二、表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中, 任意修改它所在的类的成员的操做都是不容许的(由于隐含了对this指针的const引用);
三、惟一的例外是对于mutable修饰的成员。加了const的成员函数能够被非const对象和const对象调用,但不加const的成员函数只能被非const对象调用c++

char getData() const{         
		return this->letter;
}

c++ 函数前面和后面 使用const 的做用:函数

  • 前面使用const 表示返回值为const
  • 后面加 const表示函数不能够修改class的成员

请看这两个函数this

const int getValue();指针

int getValue2() const;code

/*
 * 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; }
相关文章
相关标签/搜索