标签:
做函数参数 :
例如 fun(const int * i)参数i的值不能在fun()函数执行的过程中被修改,它将一直保持调用此函数时传入的值。如果试图修改i值的语句在fun()函数中出现,将导致程序无法编译,这样对参数i起到保护作用。
注:const 通常用来限制函数的指针参数,引用和数组参数,而一般形式的参数因为形参和实参本不是同一内存单元的变量,所以对形参的修改不会影响实参,因此也没有必要限制函数体不能对参数进行修改。
做函数返回值 :
函数返回值为 const 只有用在函数返回为引用的情况。// 关于函数返回值是引用的相关知识参考这里
函数返回值引用常量表示不能将函数调用表达式作为左值使用。
例如函数 min( )。
int & min ( int &i, int &j);
可以对函数调用进行赋值,因为它返回的是左值: min ( a , b )=4;
但是,如果对函数的返回值限定为 const 的:const int & min ( int & i, int &j );
那么,就不能对 min ( a, b ) 调用进行赋值了
const函数:
在类中,可以为类的成员函数进行如下形式的定义:
class classname {
int member ;
public:
int getMember ( ) const ;
};
这里,在函数定义头后面加上的 const 表示这个函数是一个“只读函数”,可以引用,但不能改变本类中的数据成员。
如在函数体中不能这么写 :
classname :: getmember( )
{ member =4 ;
return member;
}
另外,const成员函数也不能在函数中调用其他非const 的函数。
更详细的参考这里
总结:
一开始只是想了解一下const做函数参数的,看了半个多小时,最后小结了一下,在众多解释const的代码,虽不难理解,但难以记住,这时不能着急,也不必硬记,只是打个照面,在以后实际应用中再回头过来参考,并熟练地使用罢。
const 小结: 做函数参数,做函数返回值,以及const函数
标签:
原文地址:http://www.cnblogs.com/FightForCMU/p/4381937.html