首页 > 代码库 > const的一些记录.

const的一些记录.

const 与地址分配问题:
<c++编程思想> 在c++中 一个const不必创建内存空间,而在c中,一个const总是需要创建一块内存空间。
在c++中, 是否为const常量创建内存空间依赖于对它如何使用。一般说来,如果一个const仅仅用来把
一个名字用一个值替代,那么该储存空间就不必要创建。如果取一个const的地址或者把它定义成extern,
则会为该const创建内存空间。

临时变量类型为const:

 1 class X {}; 2  3 void foo1(X& x) { 4 } 5  6 void foo2(const X& x) { 7 } 8  9 X f() {10     return X();11 }12 13 foo1(f()); // wrong14 foo2(f()); // right

 



在const对象中改变成员:
1. 转换为非const this指针进行访问 (const_cast<Y*>(this))->i++;
2. 使用mutable关键字声明成员 mutable int i;

const的一些记录.