今天我們來編寫乙個模擬
c++標準庫中
std::string
的類。大家都知道,在
c++標準庫中有乙個
string
類,提供了一系列字串相關的操作,簡潔、方便、可靠。但是,如果由於種種原因,我們無法得到
stl的支援怎麼辦?求人不如求己,讓我們自己設計乙個類(名為
mystring
),模仿
std::string
的功能,同時複習一下相關的語言知識吧!
1
資料成員
2
成員函式
將成員函式分為
2類。一類作為介面,宣告為
public
;另一類在
mystring
內部使用,宣告為
protected。
2.1
介面函式
2.1.1
建構函式和析構函式
作為介面中的介面,建構函式可要設計好,設計全。就像吃烤鴨,黃瓜條、蔥絲、甜麵醬,乙個都不能少:
2.1.2
運算子過載函式
作為對std::string
的模仿,需要支援賦值運算=、
+=;關係運算==、
>
、<
和下標運算子
。 2.1.3
mystring
類屬性函式
2.1.4
字串操作函式
2.2
輔助函式
3
結尾
以上就是模擬
std::string
的mystring
的實現。怎麼樣,是不是對字串的理解又加深了一步呢?這個類來自於開源專案
timyxml2.1.1
中乙個字串類(
tixmlstring
),在後續的版本中該類還有不小的變化,有興趣的網友可以在網上搜一下其源**自己研究。
std string的乙個隱蔽錯誤
先看第乙個程式,for迴圈生成5個key,然後把它們對應的字串位址放入vector中,最後依次輸出字串。include include include std string genkey int i intmain for auto p vec return0 從 邏輯來說,應該會依次輸出5個不同的...
模擬乙個js new乙個物件的過程
function person person.prototype.getname function function createobj var a createobj person console.log a 上述 createobj 模擬了js new乙個物件的過程,從該函式的 中可以清晰的看到...
兩個棧模擬乙個佇列 兩個佇列模擬乙個棧
解題思路 插入操作在stack1中進行,刪除操作在stack2中進行,如果stack2為空,則將stack1中的所有元素轉移到stack2中。include include includeusing namespace std template class cqueue 建構函式 template ...