string類的實現

2021-06-06 18:01:41 字數 1075 閱讀 2781

#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 二.建構函式和析構函式都和...