c string類的實現

2021-07-22 02:22:24 字數 1202 閱讀 7183

友元函式可以轉換左右運算元的順序,而成員函式必須保證左運算元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...