我有一個String類。最近,我發現可憐的東西無法處理:試圖編寫一個字符串構造函數來處理靜態char *,如「Hello World」
String string = "Hello World";
我立即決定通過添加一個構造函數來解決這個問題。然而,確切的參數令我困惑不解:
inline String(const char[] str) : Array(str, sizeof(str)/sizeof(char)) { }
生成以下錯誤:「錯誤C2146:語法錯誤:標識符之前缺少‘)’‘海峽’」
我在想什麼就是因爲它的一個靜態char *文字,它並不意味着被傳遞給一個函數。但是,我實際上並不知道。
謝謝。 (爲了保證 - 傳遞給Array的任何數組都將被立即複製,而不是存儲)
如果將簽名更改爲內聯字符串(char const * const str),它會工作嗎?或者只是內聯字符串(char * str)? – 2011-02-17 09:03:41