2012-03-21 38 views
0

我有問題,寫在QT C++的toString函數。例如,我在我的頭文件QString toString(QString delimiter =「:」);我收到以下錯誤QT C++函數與字符串的可選參數

錯誤:類型「的QString」的參數默認參數的類型爲「爲const char [3]」

的otpional參數爲其他類型的工作得很好,但似乎編譯器解釋「:」作爲char類型,因此給我以下錯誤(我認爲字符使用'',結果我錯了)。

我GOOGLE了這個東西,但找不到任何無用的,我很漂亮,必須有一個簡單的修復它,但我是新來的語言。

謝謝

回答

1

編譯器錯誤是說,paramater是QString類型,但你給的默認值是const char[3]類型(常量字符數組),因爲它是一個字符串文字的。 QString確實有一個構造函數需要const char*(並記住數組衰減指針),所以通常它可以執行從const char*QString的隱式轉換,但似乎構造函數已被聲明爲explicit,因此必須明確調用它。

編輯:這不是明確的,頭只需要包括:)

+0

是的,我試圖鑄造它這樣,但它沒有工作,這是錯誤:無效的使用不完全類型的「 struct QString' – user1039063 2012-03-21 04:09:07

+2

aaah,我的笨腦袋,缺少的是#包括,現在它的工作,非常感謝你:) – user1039063 2012-03-21 04:11:01

+0

好吧,行動發生在頭文件的時間:) – user1039063 2012-03-21 04:36:09