c++ 函数后面 const 作用

转自: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 ;
}

你可能感兴趣的:(c++ 函数后面 const 作用)