c語言中沒有string型別,於是,在使用c語言的時候,總會用char*型別來替代string型別,但是char*和string型別還是有一定的不同的。最大的差異就是在對字串的操作上。顯然:比起char* ,string對於字串的操作更加的簡便,比如說:
1.兩個string類的變數str1和str2,我只需要寫str1+str2即可完成兩個字串的連線,但是char*就不可以。要用char*型別的話,恐怕還得用strcat函式。
2.兩個string類的變數str1和str2,我寫str1 = str2就可直接把str2值賦給str1,在這點上貌似char*也可以(私下裡試了一下)。
3.兩個string類的變數str1和str2,我用str1>str2,str1本人能力有限,暫時無法一下子就實現string的全部功能,這裡只寫了一部分,請大家多多包涵。為了與string區分開,我將這個自創的string型別命名為mystring。
首先得定義乙個mystring類作為標頭檔案,裡面包含以上這些操作的過載,**如下:
#pragma once
#includeusing std::ostream;
using std::istream;
class mystring;/*
ostream,istream為什麼要用friend?
注意:要實現輸入輸出功能的話,你只能用cout或者cin來實現,而cout和cin並不是mystring類裡的東西
所以你需要用friend使得mystring有權訪問cout和cin。
為什麼operator裡面是兩個引數?cout《以及cin>>中的「cin」和"cout"是三目運算子,所以必須是兩個引數才能實現其功能。
*/
然後,你需要在mystring.cpp檔案中一一實現折現過載函式,不過在寫的過程中我還是遇到了不少問題,這些問題我已經寫在的**當中,等過一陣子我再做解答。**如下:
#pragma warning(disable:4996)
#include#include#include"mystring.h"
mystring::mystring( )
mystring::mystring(const char* str = null)
else }
mystring::mystring(const mystring & other)
mystring::~mystring()
mystring & mystring::operator=(const mystring & other)
else }
mystring & mystring::operator = (const char* str)
mystring mystring::operator+(const mystring & other)
mystring mystring::operator + (const char* other) //如果這裡返回乙個&型別的話,程式執行就會出現異常,為什麼?
bool mystring::operator
else }
bool mystring::operator>(const mystring & other)
else }
bool mystring::operator==(const mystring & other)
else }
int mystring::getlength()
ostream & operator<
istream & operator>> (istream & is, mystring & str)
while (is&&is.get() != '\n')
return is;
}
之後,寫乙個主函式檢驗一下。
#include"mystring.h"
#include#include#includeusing namespace std;
void main()
//打上這個大括號是為了檢驗析構函式是否執行正常。
system("pause");
}
執行結果:
乙個String類的建簡易實現
其中比較重要的那幾個建構函式和析構函式 如果能夠把ostream的過載寫出來將會更加流弊 class string public string const char str null 建構函式 加分項 以下內容加const很重要 string const string other 拷貝構造 stri...
自己寫的 string 類
現在很多面試題都是要求寫乙個string類,主要檢查big 3,也就是主要檢查建構函式,析構函式和賦值函式.不要告訴我你以為是 姚明,麥蒂,阿泰.這也是很考驗基本功的乙個題目.我今天自己寫了乙個mystring類,順便加上了stradd函式用於字串相加,get函式用於輸出.詳細 如下,說明見注釋.i...
寫乙個自己的簡易版vue
剛到家疫情就開始爆發,恰巧家裡沒有網,手機網路在老家的速度就像拖拉機,每天躲在家裡,還好剛到老家時搞了些口罩,不至於返程時沒有口罩可帶。手機的網路速度到底什麼樣呢,用vue cli建個專案就在那一直install,還有可能中途失敗,哎。沒法練習vue了就把自己寫好的簡易版vue拿出來又擼了擼,還有點...