c++类型-const的使用
来源:互联网 发布:c语言break跳出if 编辑:程序博客网 时间:2024/06/16 17:30
const用法小结
1.定义const对象和指针
1.1全局作用域
在全局作用域声明的const对象是该文件的局部变量,在别的文件使用时必须用extern
1.2 类作用域
(1)const 数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其 const 数据成员的值可以不同。
(2)const 数据成员的初始化只能在类构造函数的初始化表中进行
(3)const修饰的对象,该对象的任何非const成员函数都不能被调用,因为任何非const成员函数会有修改成员变量的企图。
1.3 指针
(1) 指针本身是常量不可变
(char*)const pContent;
const (char*) pContent;
(2)指针所指向的内容是常量不可变
const (char)*pContent;
(char) const *pContent;
(3)两者都不可变
const char*const pContent;
还有其中区别方法:
沿着*号划一条线,
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。
2.const函数
const函数又称为常成员函数,当函数不改变成员对象的值时可以将函数声明为const函数。
3.修饰函数参数
(1)如果参数是指针,且仅作输入用,则应在类型前加const,以防止该指针在函数体内被意外修改。
(2)如果输入参数以值传递的方式传递对象,则宜改用“const & ”方式来传递,这样可以省去临时对象的构造和析构过程,从而提高效率。
4.修饰函数返回值
const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。
5.const与#define的比较
C++可以用const定义常量,也可以用#define定义常量,但是前者相比后者有如下优点
(1)const常量具有数据类型,编译器可以对前者进行类型检查。
(2)有些调试工具能够对const对象进行调试,但是不能对#define对象进行调试
- c++类型-const的使用
- C语言的const类型限定符
- C中CONST的使用
- C中CONST的使用
- C中CONST的使用
- C中CONST的使用
- C中CONST的使用
- C中CONST的使用
- C中CONST的使用
- 【Effective C++】const的使用
- C中CONST的使用
- C中CONST的使用
- c中const的使用
- C中CONST的使用
- C中CONST的使用
- C中const的使用
- 【C++】关于const的使用
- C++------const类型定义
- patch打 补丁
- bbed获取oracle dbid(oracle十进制和十六进制转换)
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- android 自定义LinearLayout
- oracle 集合
- c++类型-const的使用
- CCS 3.3 操作C函数读写文件
- POJ 1922 Ride to School
- [mini2440]如何配置minicom
- POJ 1562 Oil Deposits
- 9.2图的存储结构 9.2.1 邻接矩阵存储方法
- java中“==”和equals方法有什么区别
- Mina自定义文本编解码
- DOCTYPE作用及用法详解