自己動手實現乙個簡單的string類 一

2021-05-25 17:34:12 字數 1042 閱讀 6801

定義乙個基本的

string 類

class

string

private:

char

*base;

long

int length; }

; 我們可以看到在這個類裡面我們用乙個char型指標來儲存字串值,long int 型值length來儲存字串的長度。

①由於我們知道string類支援這樣的建構函式:

string str(

「hello」);

string str(5,』c』);

string str1(str,2);

string str2(str,0,2);

故我們給我們的string類新增相應的建構函式:

class

string

string(const

char

* p)

else

length = strlen(p); }

string(int count,char ch)

base[++i] =

'/0';

length = count; }

string(string& str,int count)

string(string& str,int index,int count)

base[j] =

'/0';

length = count; }

private:

char

*base;

long

int length; }

; ②為類新增拷貝建構函式和析構函式

拷貝建構函式:

string(const string &str)

注意這裡的拷貝建構函式的形參是定義為const,為什麼要定義為const呢?是因為要既能接收const實參,又能接受非const實參。若是我們定義為非const,則無法接受const實參了。那為什麼我們不定義函式過載呢。那是乙個類只能有乙個複製建構函式啦。

析構函式:

~string()

自己動手實現乙個簡單的React

為了更好的理解react,我決定讀preact的原始碼,preact是乙個非常小的框架,同時也和react的實現原理以及api一樣,幾乎可以很好代替react。雖然還是有一些差異的。但是使用的時候幾乎不會有什麼違和感。看原始碼總是不夠過癮,於是做了乙個偉大的決定就是自己親手去寫乙個react,畢竟p...

自己動手程式設計實現乙個shell

這是本部落格的第乙個文章 主要介紹如何用 c 語言基於linux系統來實現乙個簡單shell,diy 乙個shell。通過自己程式設計實現乙個linux下的 shell,可以使得個人對程序的概念 程序的通訊和作業系統的執行的理解更加的深刻。還會大大增加個人學習的成就感,提供學習興趣。這乙個文章 被命...

自己動手實現乙個MVVM庫

我們知道的,常見的資料繫結的實現方法 1 資料劫持 vue 通過object.defineproperty 去劫持資料每個屬性對應的getter和setter 2 髒值檢測 angular 通過特定事件比如input,change,xhr請求等進行髒值檢測。3 發布 訂閱模式 backbone 通過...