当前位置:嗨网首页>书籍在线阅读

07-改进后的新String类

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

12.2 改进后的新String类

有了更丰富的知识后,可以对StringBad类进行修订,将它重命名为String了。首先,添加前面介绍过的复制构造函数和赋值运算符,使类能够正确管理类对象使用的内存。其次,由于您已经知道对象何时被创建和释放,因此可以让类构造函数和析构函数保持沉默,不再在每次被调用时都显示消息。另外,也不用再监视构造函数的工作情况,因此可以简化默认构造函数,使之创建一个空字符串,而不是“C++”。

接下来,可以在类中添加一些新功能。String类应该包含标准字符串函数库cstring的所有功能,才会比较有用,但这里只添加足以说明其工作原理的功能(注意,String类只是一个用作说明的示例,而C++标准string类的内容丰富得多)。具体地说,将添加以下方法:

int length () const { return len; }
friend bool operator<(const String &st, const String &st2);
friend bool operator>(const String &st1, const String &st2);
friend bool operator==(const String &st, const String &st2);
friend operator>>(istream & is, String & st);
char & operator[](int i);
const char & operator[](int i) const;
static int HowMany();

第一个新方法返回被存储的字符串的长度。接下来的3个友元函数能够对字符串进行比较。Operator>>()函数提供了简单的输入功能;两个operator函数提供了以数组表示法访问字符串中各个字符的功能。静态类方法Howmany()将补充静态类数据成员num_string。下面来看一看具体情况。