今天我们来编写一个模拟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),在后续的版本中该类还有不小的变化,有兴趣的网友可以在网上搜一下其源代码自己研究。