友元函式可以轉換左右運算元的順序,而成員函式必須保證左運算元string已經處於正確的形式。
#include#include#includeusing namespace std;
class string;
friend const string operator + (const string &other1, const string &other2); //operator+() 友元函式的版本
~string(void)
private:
char *m_data; // 用於儲存字串
};inline string::string(const char* str)
}inline string::string(const string &other)
}inline string& string::operator=(const string& other)
}return *this;
}/****成員函式的版本
inline const string string::operator+(const string &other)const
return newstring;
}****/
//友元函式的版本如下:
const string operator + (const string &other1, const string &other2) /* 是:operator + ,而不是:string::operator + ,因為友元函式不是成員函式 */
return newstring;
}inline bool string::operator==(const string &s)
inline char& string::operator(unsigned int e)
ostream& operator<<(ostream& os,string& str)
int main()
{ string str1="aha!";
string str2="my friend";
string str3 = str1+str2;
//str1+str2 = str3; //因為是:const string operator +(),所以禁止寫出這樣的**:
str1+str2 = str3
cout<
C String類的實現
參考c primer.string類的實現,清翔兔 06,jan.include using namespace std class string string void private char m data inline string string const char str if str m...
C String類的實現
include using namespace std class string string void private char m data inline string string const char str inline string string const string other i...
C String類的實現
面試的時候被問及了string類的實現,結果沒寫好.就當是重新複習一下吧。下面的程式並沒有把string類的所有成員方法實現,只參考教程寫了大部分重要的成員函式。include includeusing namespace std class string string void private c...