读书人

暑假C++温习16之const的用法总结

发布时间: 2012-08-13 13:21:53 作者: rapoo

暑假C++复习16之const的用法总结
const主要是为了程序的健壮型,减少程序出错.
最基本的用法:

const int a = 1; const int& ref1 = a;const int& ref2 = 1; 
ref1 和 ref2 都是正确的,但是他们引用的内容和一般的引用不同
对 const int& ref1 = a; 而言,其实这个 ref1 已经和 a 没有任何关系了
ref1 实际上是对一个临时量的引用。同理 const int& ref2 = 1; 也是对
一个临时量做的引用。当引用临时量是 C++ 的隐式类型转换可以起作用。
临时量的生存期和引用量的生存期相同。

二、强传const对象可能导致无定义行为

对于优化做的比较好的编译器,代码 const int i = 1;
当后面用到变量 i 的时候,编译器会优化掉对 i 的存取,而直接使用立即数 1

const int i = 1;

*(const_cast<int*>(&i)) = 2;
cout << *(int*)&i << endl;
cout << i << endl;

所以,对 const 对象做 const_cast 可能导致无定义行为
目前我就遇到这些问题,那位还有补充的吗

有哪些不对的地方,请大家指正。求交流。。。

读书人网 >C++

热点推荐