http://www.cnblogs.com/xudong-bupt/p/3509567.html
http://bbs.csdn.net/topics/190030593
返回const值,意思指返回的原函數里的變量的初值不能被修改,但是函數
按值返回的這個變量被制成副本,能不能被修改就沒有了意義,它可以被賦給任何
的const或非const類型變量,完全不需要加上這個const關鍵字.但這只對于內部
類型而言(因為內部類型返回的肯定是一個值,而不會返回一個變量,不會作為左
值使用),對于用戶自定義類型,返回值是常量是非常重要的,
X Fuction1 () { return X(); }
const X Fuction2 () { return X(); }
如有上面的自定義類X,和函數Fuction1()和Fuction2(),我們進行如下操作時:
Fuction1()=X(1); //沒有問題,可以作為左值調用
Fuction2()=X(1); //編譯錯誤,const返回值禁止作為左值調用.因為左值
把返回值作為變量會修改其返回值,const聲明禁止這種修改.