暑假C++温习16之const的用法总结
暑假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 可能导致无定义行为
目前我就遇到这些问题,那位还有补充的吗
有哪些不对的地方,请大家指正。求交流。。。