operator +=重载函数,一个用于追加字符,一个用来追加字符串.需要注意的是,+=运算符的返回值是+=后的结果类对象,所以+=运算符重载函数的返回值是字符串引用类型,即string&....类中详细分析过对自定义类如何重载流插入和流提取函数,如下:
对于string类的流插入函数,我们只需要将string类对象中的字符逐一插入到ostream(流插入)对象中即可,然后因为流插入运算符是有返回值的...,因此我们将流插入对象作为返回值返回....,就是我们对输入的数据是未知的,即不知道它的内容,也不知道它有多长,所以稳妥的方法就是我们一个字符一个字符从流中提取内容,然后按照我们正常的扩容逻辑,可能如果插入128个字符就要扩容7次,而扩容又每次都要拷贝转移数据到新开辟的空间...流提取这里相比于流插入逻辑复杂一些,有很多细节需要我们注意,见代码注释:
istream& operator>>(istream& in, string& s)
{
//因为我们要实现每次流提取的内容都对之前的内容是覆盖过的