对上次的实现做了改进之后,实现为如下代码:

#include
#include
using namespace std;class String{ public: String(char *str="") :_str(new char[strlen(str+1)]) { strcpy(_str,str); } String(const String& str) :_str(NULL) { String tmp(str._str); swap(_str,tmp._str); } ~String() { delete[] _str; } String& operator=(String& str) { swap(_str,str._str); return *this; } friend ostream& operator<<(ostream& os,const String& str);private: char *_str;};ostream& operator<<(ostream& os,const String& str){ os<
<