#include <iostream>
#include <string.h>
using namespace std;
class String{
char* p;
public:
String(){
cout << "空参构造" << endl;
p = new char[100];
}
String( const char* p_str ){
cout << "const char* 构造" << endl;
p = new char[100];
strcpy( p, p_str );
}
~String(){
delete p;
}
//拷贝构造
String( const String& s ){
cout << "拷贝构造" << endl;
p = new char[100];
strcpy( p, s.p );
}
//赋值
String& operator=( const String& s ){
cout << "赋值" << endl;
//1 判断字符值
if( this == &s ){
return *this;
}
//2 释放当前对象
delete p;
//3 申请新空间
p = new char[100];
//4 拷贝
strcpy( p, s.p );
//5 返回当前对象
return *this;
}
void show(){
cout << p << endl;
}
};
int main(){
String s;
String s1("Guli xiao bai cai");
String s2 = s1;
s = s2;
s = "xiao bai cai guli";
s.show();
return 0;
}