转自:http://kingplesk.org/2011/05/c-%E5%87%BD%E6%95%B0%E5%90%8E%E9%9D%A2-const-%E4%BD%9C%E7%94%A8/
c++ 函数前面和后面 使用const 的作用,
前面使用const 表示返回值为const
C++类的成员函数后面加 const表示函数不可以修改类的成员
请看这两个函数
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 ;
}