开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
问题
刚入门学习C++,
C++ Primer, 5e, 2.4.3顶层的const小节提到:
“当我们拷贝一个物件,顶层const会被忽略。”
“另一方面,低层const永远都不会被忽略。”
其中有个举例:
const int ci = 42;
int &r = ci;//错误
1.“顶层const会被忽略、而低层就永远不会”这个原则是从哪里产生的呢?
为什么不要一律保留const,而要区别顶层低层,并且有忽略跟保留的差异,
这是为了解决什么问题吗?
2.为什么ci的顶层const没有被忽略呢?如果照顶层const会被忽略的原则,
应该可以将普通int&系结到const int物件上,为什么不行呢?
是因为参考并没有涉及拷贝的动作,单纯只是给另一个变量加上别名而已,
所以就没有忽略顶层const这件事吗?
请板上的大师们不吝教导,看了好几篇文章还是不理解为什么要有这种机制...