首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

暑假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 可能导致无定义行为
目前我就遇到这些问题,那位还有补充的吗 

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

热点排行