我有這樣的功能:爲什麼我需要將const添加到參數中?
void
SpookyBoy(bool Troublemaker, const Glib::ustring& name, HorrorPunkBand& band);
如果我刪除單詞const
我得到這個錯誤:
no known conversion for argument 2 from ‘const char [5]’ to ‘Glib::ustring&’
我只是想知道什麼是編譯器,可有人向我解釋爲什麼字const
編譯器可以投射?
即使我不得不承認,這兩個問題是人誰已經知道了答案(在更不用說)相似,但肯定不是一個人誰還不知道answwer(在先驗) 。
您的函數聲明是否看起來像這樣?根據錯誤消息,'ustring'參數顯然被聲明爲'const Glib :: ustring&name',即作爲參考。 – AnT
@AnT是的,你是對的,我忘了&+1給你 –
可能重複[爲什麼const爲隱式轉換?](http://stackoverflow.com/questions/3895647/why-const-for-implicit-conversion) – AnT