关于const的使用
2011-09-18 22:51
344 查看
一 引入
说到const,是从c的预处理#define而来的,其最初动机为取代#define来进行值替代。从这以后在c++中它就可以用于修饰指针等。
二 值替代
在c/c++中#define一个数,编译器不为它分配内存,不进行类型检查,仅仅做了些文本替换。那么const呢?也是如此吗?(以下仅仅讨论在c++中)
默认的情况下,const 一个变量并定义它(如const int i=1;)编译器不为它分配内存,仅仅把值放在符号表中,而且此常量仅仅只能在定义它的文件中可见(也可以理解为在其它文件中不能使用它,即不能通过extern来使用它,因为它没分配到内存)。那么我要为它分配它内存呢?可以通过extern关键字,即可以extern const int i=1;这样在其他文件也来访问i了。
三 const数组
const数字仅仅意味着‘不能改变的一块存储空间’,而编译器不知道存储的内容是什么,所以下列代码不能通过。
const int a[]={1,2,3};
double d(a[1]);//非法的
而
const int i=2;
double d[2];是正确的;
四 const指针
这个不多说了。
五 const返回值
对于内置类型,const返回值没什么意义。
对于用户自定义的类型,const返回值才有意义。既可以说明它是否可以为左值。
六 类中的const
const数据成员。如
class x{const int i;public:x(int ii):i(ii){}};这个说明const的数据成员必须在构造函数的初始化表中初始化。
const 成员函数。
void f() const;说明这个成员函数不能修改内部数据成员。
说到const,是从c的预处理#define而来的,其最初动机为取代#define来进行值替代。从这以后在c++中它就可以用于修饰指针等。
二 值替代
在c/c++中#define一个数,编译器不为它分配内存,不进行类型检查,仅仅做了些文本替换。那么const呢?也是如此吗?(以下仅仅讨论在c++中)
默认的情况下,const 一个变量并定义它(如const int i=1;)编译器不为它分配内存,仅仅把值放在符号表中,而且此常量仅仅只能在定义它的文件中可见(也可以理解为在其它文件中不能使用它,即不能通过extern来使用它,因为它没分配到内存)。那么我要为它分配它内存呢?可以通过extern关键字,即可以extern const int i=1;这样在其他文件也来访问i了。
三 const数组
const数字仅仅意味着‘不能改变的一块存储空间’,而编译器不知道存储的内容是什么,所以下列代码不能通过。
const int a[]={1,2,3};
double d(a[1]);//非法的
而
const int i=2;
double d[2];是正确的;
四 const指针
这个不多说了。
五 const返回值
对于内置类型,const返回值没什么意义。
对于用户自定义的类型,const返回值才有意义。既可以说明它是否可以为左值。
六 类中的const
const数据成员。如
class x{const int i;public:x(int ii):i(ii){}};这个说明const的数据成员必须在构造函数的初始化表中初始化。
const 成员函数。
void f() const;说明这个成员函数不能修改内部数据成员。
相关文章推荐
- (笔记)关于函数形参中使用const引用和非const引用间的区别
- 关于const的使用
- 关于const_cast(str.c_str())的使用问题
- 关于C/C++中静态本地变量的使用与数据类型修饰符const
- 关于指针中使用const
- 关于const关键字与指针的相关使用要点
- 关于const的使用方法【转载】
- [EffectiveC++]item03:尽可能使用const 并且转载一篇关于const函数的博客
- 关于const的使用规范
- 关于Const常量内存使用
- C++ 关于static_cast reinterpret_cast dynamic_cast 以及 const_cast 用于类型转换的函数使用 20180315 day7
- 函数中关于const关键字使用的注意事项
- 关于const与指针混合使用的助记法
- 关于const与指针搭配使用的一点记录
- 关于const的使用
- 关于const char *的使用方法
- 关于const 使用
- 关于const的使用
- C++关于类成员函数在参数列表后加const的作用,以及使用条件
- 关于常见的变量修饰符: const, static, extern, register, auto 的详细解释,使用场合以及注意事项