C++模擬實現string的方法詳解
2022-11-11 14:00:19
1.string 成員變數
首先需要一個動態開闢的指標指向這個字串,然後還需要容量和儲存的個數,並且我們不能和標準庫的string進行衝突所以我們需要寫在我們自己的類域中,並且我們庫中還有一個靜態的變數是npos,就是無符號的-1,代表整形的最大值:
namespace cyf { class string { public: //成員函數 private: char *_str; size_t size; size_t capaticy; const static size_t npos = -1; }; }
這裡有一個特例:static成員變數一般在類中宣告在類外定義,但是const static int型的變數可以直接在類中定義。
2.建構函式
strlen求出的是 之前的字元個數,所以_size和_capacity標識的是實際儲存的字元個數,在開闢空間時多開闢一個字元用來儲存'