-3
string operator + (const string &s, char *lit);
string operator + (const string &s, char *lit)
{
string temp;
temp.len = s.len+strlen(lit);
temp.str = new char[temp.len+1];
strcpy(temp.str, s.str);
strcat(tmep.str, lit);
return temp;
}
這是我的proffessor給我作爲示例代碼重載字符串類的示例代碼。事情是,當我編譯它,它說重載+運算符
std::string operator+(const string&, char*)’ must take either zero or one argument
我只是想知道爲什麼它沒有編制?它只需要一個參數。但不會拿兩個。謝謝。
你能告訴我們你的實際程序(請相關部分)。 – 0x499602D2
從技術上講,它應該編譯,因爲它還沒有被使用。我只是將原型放在標題中,並將代碼放在.cpp文件中。 – ZZPLKF
無論如何,這應該採用'const char *',而不是'char *'。 – chris