string 类使用起来比较方便,在本课程的开始我们就学习了 string 类。之所以那么早就学习 string ,就是希望大家能够用 string 代替 c 风格的字符串。目前为止,我们学习了如何定义类,以及如何为类定义运算符重载函数。今天我们就来定义一个类似于 string 功能的自己的 String 类。
各个函数
1.构造函数
String(const char *s); //用 c 字符串 s 初始化
String(int n,char c); //用 n 个字符 c 初始化
2.拷贝和赋值
String& String(String& str);
const String& operator=(String& str);
3.析构函数
~String();
4.下标访问
char &operator[](int n);
char &at(int n)const;
5.String 类提供的方法
int size()const; //返回当前字符串的大小, string 内部不会在我们每一次的字符串连接的时候都会分配空间,它会多分配一些内存,下次连接时的字符串小于剩下的空间它就不用再为这个字符串分配另外的空间了。它分配的所有空间就是 size ,而字符串的实际长度 length
int length()const; //返回当前字符串的长度
bool empty()const; //当前字符串是否为空
6.重载流插入和提取运算符
istream& operator>>(istream& input, String& str);
ostream& operator<<(ostream& output, String& str);
7.连接两个字符串
String &operator+=(String &s);
8.字符串比较
bool operator==(const String &s1,const String &s2)const;
int compare(const string &s) const;//比较当前字符串和 s 的大小
在我们这里实现的 string 类是比较简单的, C++标准模板库里面的 string 类的方法是非常非常多的,而且是非常非常复杂的。这里我们仅仅是为了给大家演示一下 string 类内部大概的实现方法,以及复习大家前段事件所学习的内容。