模擬實現string類

2021-08-03 12:17:53 字數 957 閱讀 7003

#include

using namespace std;

#include

class string

string(string &a)                                     //2、為什麼要用& ,優點在哪

~string()

} void print()

string & operator =(const string & a)

string & operator+(const string & a)

char & operator(int i)

return ptr[i]; }

friend istream & operator>>(istream&is,const string & a);

friend ostream & operator<<(ostream&is,const string & a); };

istream & operator>>(istream & is,const string & a)

ostream & operator<<(ostream & os,const string & a)

int main()

1、關於第乙個問題,為什麼要用成員初始化列表,其原因在於:

1)、成員初始化列表寫法方便、簡練;尤其當需要初始化的資料成員較多時更顯其優越性。

2)、在c++中某些型別的成員是不允許在建構函式中用賦值語句直接賦值的,例如,對於const修飾的資料成員,或是引用型別的資料成員,是不允許用賦值語句直接賦值的,因此,只能用成員初始化列表賭氣進行初始化。

2、關於為什麼要用物件的引用&,而不只是物件

使用&可以確保傳過來的引數就是物件本身,傳的是乙個位址,並且&並不會另外開闢記憶體單元,使用物件引用作為函式引數不但具有物件指標作為函式引數的優點,而且物件引用用作函式引數將是程式簡單,直接。

模擬實現string類

在c 中,string其實就是將字串封裝起來的類,呼叫類中的成員函式可以完成對類內的字串進行增刪查改,並且將操作符過載,可以更直觀的操作字串,省去了c語言中很多麻煩的操作,有現成的成員函式供我們使用。舉乙個簡單的例子 在c語言中要在一串字串的尾部拼接另乙個字串,我們需要做的事情就是定義兩個字串,要使...

string類模擬實現

define crt secure no warnings include include using namespace std class string iterator end const iterator begin const const iterator end const 無參建構函式...

String 類的模擬實現

string 類的模擬實現 一 建構函式使用初始化列表的優點 建構函式的執行分為兩個階段 初始化階段和計算階段,初始化階段先於計算階段 賦值語句 在使用建構函式給資料成員進行初始化時通常有兩種選擇。一是在建構函式後加上冒號,並用初始化列表的方式對成員進行初始化。二是在建構函式體中用賦值語句完成對成員...