看着别人的文章,觉得重点或者会忘记的就随手记一下。。。。。
1.常类型的变量或对象的值是不能被更新的。
2.const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。
3. 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
4.C++中:
const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数;
const对象的成员是不能修改的,而通过指针维护的对象确实可以修改的;
const成员函数不可以修改对象的数据,不管对象是否具有const性质。编译时以是否修改成员数据为依据进行检查
常量对象调用 非 常量函数时将会产生语法错误。
C++也允许在数据成员的定义前面加上mutable,以允许该成员可以在常量函数中被修改
5.const只修饰左边的内容(以后老是记不住,这样好记多了。。。)
6.如果不希望函数的调用者改变参数的值。最可靠的方法应该是使用引用。
7.const与宏常量
const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的 错误。
原文地址:http://www.cnblogs.com/awidy/p/3963231.html