#include"iostream"
using namespace std;
class String{
private:
char *str;
public:
String() :str(NULL){}
const char*c_str(){ return str; }
char*operator=(const char*s);
~String(){};
String & operator=(const String&);
String(String &s);
};
char* String::operator=(const char*s){
if (str) delete[]str;
if (s){
str = new char[strlen(s) + 1];
strcpy(str, s);
}
else
str = NULL;
return str;
}
String::String(String &s){
if (s.str){
str = new char[strlen(s.str) + 1];
strcpy(str, s.str);
}
else{
str = NULL;
}
}
String& String::operator = (const String& s){
if (str == s.str) return *this;
if (str) delete[]str;
if (s.str){
str = new char[strlen(s.str) + 1];
strcpy(str, s.str);
}
else{
str = NULL;
}
return *this;
}
int main(){
String s;
s = "Hello";
cout << s.c_str() << endl;
return 0;
}
网友评论