在初学C++的时候,一直对const的用法难以理解,因为它出现的地方实在太多了。让我都搞不清楚它在各个地方到底是什么意思。前段时间看《$g(Effecitve c++)》才理解了const的一些用法。在过去一段时间之后的现在,我将我还记得的部分在这里记录下来,看看我是不是真的已经理解了const的用法。      

第一,用在函数定义的函数头后面.限制函数对超出该函数作用域的变量进行修改.比如:

void add( int a, int b ) const
{
     
this->length++;   //非法,不允许对length进行修改.
     int len = this->length;   //合法
}

第二,修改函数返回值,如:

int add( int a, int b )
{
    
return a + b;
}

//这样一个函数定义,代码里出现如下的语句是合法的
//add( a, b ) = 5;
//将一个常量赋给一个函数的返回值,这样看起来很奇怪,所以应该这样声明:
const int add( int a, int b )
{
    
return a + b;
}

//这样的话就不会有add( a, b ) = 5这样的语句了.

第三,修饰变量声明.

const char* pStr;
//这个声明可以看成(const char)* pStr,即一个const char的指针.对pStr进行赋值操作是允许的.
char* const pStr;
//这里的const修饰pStr,即不允许对pStr进行赋值,但是(*pStr)= "512",这样的操作是允许的.
const char* const pStr;
//当进行这样的声明是,pStr和*pStr都不允许修改了.
posted on 2006-03-27 12:54  Lupin  阅读(1296)  评论(0编辑  收藏  举报