String类的代码:

classString{public:String(char*str=""){_str=newchar[strlen(str)+1];strcpy(_str,str);}String(constString&str){_str=newchar[strlen(str._str)+1];strcpy(_str,str._str);}~String(){delete[]_str;}String&operator=(constString&str){if(&str==this)return*this;delete[]_str;_str=newchar[strlen(str._str)+1];strcpy(_str,str._str);return*this;}booloperator==(constString&str){returnstrcmp(_str,str._str)==0;}friendostream&operator<<(ostream&o,String&str){o<<str._str;returno;}private:char*_str;};

包括构造函数,拷贝构造函数,析构函数,算数运算符重载。


下面是测试代码:

Strings1="hello";Strings2="world";Strings3="o";cout<<"s1="<<s1<<endl;cout<<"s2="<<s2<<endl;cout<<"s3="<<s3<<endl;cout<<endl;Strings4(s1);Strings5(s1);Strings6(s1);s5=s2;cout<<"s4="<<s4<<endl;cout<<"s5="<<s5<<endl;cout<<(s4==s5)<<endl;cout<<(s4==s6)<<endl;


测试结果: