首页 > 代码库 > const

const

看着别人的文章,觉得重点或者会忘记的就随手记一下。。。。。

 

1.常类型的变量或对象的值是不能被更新的。

2.const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。

3. 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

4.C++中:

   const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数;
   const对象的成员是不能修改的,而通过指针维护的对象确实可以修改的;
   const成员函数不可以修改对象的数据,不管对象是否具有const性质。编译时以是否修改成员数据为依据进行检查

   常量对象调用 非 常量函数时将会产生语法错误。

   C++也允许在数据成员的定义前面加上mutable,以允许该成员可以在常量函数中被修改

 

5.const只修饰左边的内容(以后老是记不住,这样好记多了。。。)

6.如果不希望函数的调用者改变参数的值。最可靠的方法应该是使用引用。

7.const与宏常量

  const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的   错误。

 

const