開發平台(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這件事嗎?
請板上的大師們不吝教導,看了好幾篇文章還是不理解為什麼要有這種機制...