函數定義:
void fun(const string &s){
cout<<s<<endl;
}
如果調用fun("hello"),可以正確編譯。但是如果把函數定義中的const去掉,則不能正確編譯。
問字符數組"hello"是通過什麼方式裝換成const string &類型的,是某種強制轉換嗎?
我再C++ primer裡沒找到相關說明,如有知道的說明下哪本書,那頁有說明。
我知道了,在C++ primer第5版的 2.4.1節有說明,即引用類型與其所引用對象類型不一致時,編譯器會生成一個臨時的常量,所以如果引用不是const的,則會報錯