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

 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;

  
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
 * 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_ */

源文件中的实现

  
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
 * 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 ;
}

 



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值