#include
using namespace std;
class string
public:
string(const char *str = 0);// 普通建構函式
string(const string &other); // 拷貝建構函式
~string(void) // 析構函式
string& operator=(const string &other);// 賦值函式
char* data(void) const
private:
ostream& print(ostream& out) const;
char *data_;// 用於儲存字串
};//賦值操作符首先要注意是不是自己賦給自己,如果是這樣的話什麼也不做,把自己返回即可。
//其次就是別人賦值給自己,這時首先要自己把原來的值扔到,根據別人的大小開闢一塊空間
//準備盛放別人的內容,最後不要忘了返回對自己的引用。
string& string::operator =(const string& other)
return *this;
}//複製建構函式總是發生在構造階段,所以此時成員data_還沒有空間可以使用,應該先根據別
//人空間的大小開闢好空間,然後在把別人的內容拷貝進來。
string::string(const string &other)
//由於輸出操作符通常寫成類的友元函式,這樣就可以寫類似cout//會認為你是過載了一元移位操作符<<,而且引數還加多了。
//輸出操作符的經典寫法就像本文這樣,另加乙個print成員函式來完成幹活的功能讓《來呼叫,之所
//以返回ostream& 也是和c++語言內建操作符機制保持一致,這樣就可以寫coutelse
}void main()
{char* p="hello world !";
string s(p);
cout《好丟臉啊,我竟然以為strcpy是為string定製的.......
其實它是char *複製的!!!!!
strcpy系列根本就不用加的標頭檔案!!!
string類的實現
參考c primer.string類的實現,清翔兔 06,jan.includeusing namespace std class string string void private char m data inline string string const char str inline st...
String類的實現
學習資料結構寫了乙個string的類,貼出來求指教 ifndef string h h define string h h include include include define defaultsize 128 class string maxsize為傳入引數的string string c...
string類的實現
string類有兩種實現方式 一 class string else string string const string s 拷貝構造引數 string operator const string s 賦值運算子過載 return this private char p 二.建構函式和析構函式都和...