//例18.32 实现真正的字符串赋值功能 #include using namespace std; class String { public: String();//默认构造函数用于创建空字符串 String(const String&rs); String(const char*const ch);//带一个参数的构造函数用来初始化字符串 char&operator[](unsigned short int length); char operator[](unsigned short int length)const; String&operator=(const String&s);//赋值函数用于两个字符串之间的赋值 unsigned short int getlen()const{return len;} const char*getstr()const{return str;} private: unsigned short int len; char*str; }; String::String() { cout<<"默认构造函数\n"; len=0; str=new char[1]; str[0]='\0'; } String::String(const String&rs) { cout<<"复制构造函数执行...\n"; len=rs.getlen(); str=new char[len+1]; for(int i=0;ilen) return str[len-1]; else return str[length]; } char String::operator[](unsigned short int length)const { cout<<"operator[]const执行\n"; if (length>len) { return str[len-1]; } else return str[length]; } String&String::operator=(const String&s) { cout<<"operator=执行...\n"; if (this==&s) return *this; delete[]str; len=s.getlen(); str=new char[len+1]; for(int i=0;i