C++ 中const关键字小记
来源:互联网 发布:checkpoint软件下载 编辑:程序博客网 时间:2024/05/28 11:47
c++中const用在变量之前,说明该变量为只读,不能赋值。
c++中const用在函数里,分为以下3种情况:
int strcmp (const char *str1,const char *str2);
const int & min (int &, int &);
void printMessage (char *msg) const ;
第一种: 出现在参数里面修饰参数
出现在函数参数中的const 表示在函数体中不能对这个参数做修改。比如上面的例子中strcmp() 函数用来比较两个字符串的大小,在函数体中不应该改变两个参数的值,所以将它定义为是const 的。const 通常用来限制函数的指针参数,引用和数组参数,而一般形式的参数因为形参和实参本来就不在同一内存空间,所以对形参的修改不会影响实参,因此也没有必要限制函数体不能对参数进行修改。
const 指针可以接受const 和非 const 地址,但是非const 指针只能接受非const 地址。所以const 指针的能力更强一些,所以尽量多用const 指针,这是一种习惯。
第二种:出现在返回值修饰
函数返回值为 const 只有用在函数返回为引用的情况。 函数返回值引用常量表示不能将函数调用表达式作为左值使用。例如前面讲的返回引用的函数 min( )。
int & min ( int &i, int &j);
可以对函数调用进行赋值,因为它返回的是左值: min ( a , b )=4;
但是,如果对函数的返回值限定为 const 的:const int & min ( int & i, int &j );
那么,就不能对 min ( a, b ) 调用进行赋值了。
第三种:出现在函数()后面
在类中,可以为类的成员函数进行如下形式的定义:
class classname {
int member ;
public:
int getMember ( ) const ;
};
这里,在函数定义头后面加上的 const 表示这个函数是一个“只读函数”,函数不能改变类对象的状态,不能改变对象的成员变量的值。如在函数体中不能这么写 :
classname :: getmember( )
{ member =4 ;
return member;
}
另外,const成员函数也不能在函数中调用其他非const 的函数。______________________________________________________________________________
对象.成员函数
对象 成员函数 对/错
1、 const const 对
2、 const non-const 错
3、 non-const const 对
4、 not-const non-const 对
成员函数调用成员函数
成员函数 成员函数 对/错
5、 const const 对
6、 const non-const 错
7、 non-const const 对
8、 non-const non-const 对
- C++ 中const关键字小记
- C中const关键字
- C中const关键字
- C语言中const关键字
- C/C++中const关键字
- C/C++中const关键字
- C/C++中const关键字
- C/C++中const关键字
- C语言中关键字const
- C/C++中const关键字
- C/C++中const关键字
- C语言中const关键字
- [关键字]C/C++中const关键字详解
- C 语言中 const 关键字介绍
- c语言中const关键字详解
- C语言中const关键字学习
- const关键字在c和c++中
- 嵌入式C中const关键字的使用
- 走进SylixOS代码
- codeforces round #266 C. Number of Ways
- JabRef 入门
- A. Cheap Travel
- CentOS配置VSFTP服务器
- C++ 中const关键字小记
- 数据结构概括
- Apache开启deflate(Gzip)和Expires提升网页加载速度
- 自定义标签实现分页简单化
- 1024!末尾有几个零?
- BZOJ 1269 [AHOI2006]文本编辑器editor Splay伸展树
- UVa11105 - Semi-prime H-numbers(sieve的思想)
- [LeetCode]Longest Valid Parentheses
- android 定时器 Timer 使用 及其遇到的问题