自己動手寫string類 一

2021-06-05 20:44:47 字數 1034 閱讀 1374

前面說到了string類,為什麼她就能夠那麼方便呢? 其實這是有原因的,因為它的背後有很多願意默默奉獻的英雄們在大力支援~~~今天就讓我們來初窺其神秘的面紗(其實也只是冰山一角)! !

我們都知道string物件可以直接進行輸入,輸出,賦值,相加,比較等等,其實說到底就是string類中對大量的運算子進行了過載。那什麼是運算子過載呢? 這個是c++重要的一部分內容,今天就一起來****!!

我對運算子過載的理解簡單說是這樣的,對已有的運算子重新定義,使得滿足我們使用的要求。(具體的請參考c++有關教材)。下面我們就直接自己動手寫string類了。。。。

常見的建立物件的方法有string str; 或者 string str("i love c++"); 建立物件時就必須呼叫建構函式,所以這裡可以通過預設建構函式來構造乙個空字串,同時也應該有乙個帶引數的建構函式。-----這裡為了區別string類,就用string作為類名。

class string

string(const char* const str)};

接下來可以開始運算子過載了。。。

編譯器沒有對陣列越界的問題進行善意的提醒,所以我們可以自己來給自己進行安全的檢驗。所以選擇了過載[ ]。

char& operator(unsigned int len)        //len作為陣列的下標

同時可以對這個函式進行過載,對const物件也可以進行操作

char  operator(unsigned int len) const        //len作為陣列的下標

輸出《運算子 和 

過載輸入》

對於物件可以直接這樣輸出coutfriend ostream& operator<<(ostream& os, const string& s)     // 固定格式 ,引數型別要對應cout是ostream物件

為了能夠簡單的對兩個物件進行賦值,如 str1 = str2 ;  必須過載賦值 = 運算子。。。

string& operator=(const string& s)       

未完待續。。。。。

自己動手寫框架 一

php框架接觸有一段時間,主要是kohana和thinkphp。這兩個框架各有各的特色,總體來說kohana還是相對來說比較簡單,但是國內資料較少。簡單的,我把我的這個框架命名為demo.框架搭建第一步,總體目錄規劃 classes controller models views template ...

自己動手寫bootloader

原始出處 作者資訊和本宣告。否則將追究法律責任。為了寫乙個bootloader讓板子跑起來,首先我們要知道bootloader是個什麼東東才行。簡單的說,bootloader就是乙個引導核心啟動的一段小 也就是說當啟動完核心之後,它的使命就已經結束。bootloader生命週期 初始化硬體 設定啟動...

自己動手寫CMS

簡易的cms外掛程式,可供借鑑或者擴充套件 流程 定義內容 分類與組織內容 儲存內容 操作控制內容 定義內容 制定目標 確定需要的內容型別 目標使用者定位 確定目標使用者需要何種技術 分類與組織內容 按內容所屬的邏輯層級關係來劃分 按內容的種類來劃分,比如video text audio等等 儲存內...