string類的實現(mystring)

2021-07-11 07:04:10 字數 881 閱讀 5935

最近參加了實習招聘感覺自己的c++都快忘光了,其中面試過程中問到了string類的實現,需手寫實現一遍。現在再實現一下

class mystring

;inline mystring::mystring(char *str=null)

else

}inline mystring::~mystring()

}inline mystring::mystring(const mystring &a)//使用靜態的防止被修改 傳入引用是避免拷貝函式再調拷貝函式導致編譯出錯

else

}inline mystring & mystring::operator=(const mystring &a)//賦值運算子需要返回該型別的引用 這樣才能連續賦值

else

delete m_data;

m_data = new

char[strlen(a.m_data)+1];

strcpy(m_data,a.m_data);}}

else

return *this;

}std::ostream& operator

<<(std::ostream& os,const mystring & str)

提醒自己需要注意的幾點:

1. 過載賦值運算子的時候,要考慮到是否為自身,即(this與&a)的比較

2. 過載賦值運算子的時候,要返回返回該型別的應用,這樣就可以實現連續賦值

3. 拷貝構造函式引數需要是引用的,因為如果引數是例項,那麼從形參到實參會呼叫一次輔助建構函式,形成無休止的呼叫,造成編譯出錯。

4. 還有沒考慮到的就是new的時候可能會出現錯誤,所以在函式中可先例項乙個物件,然後再交換。

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類的實現

include using namespace std class string public string const char str 0 普通建構函式 string const string other 拷貝建構函式 string void 析構函式 string operator const...