1.实现一个string类,要求有构造函数,拷贝构造函数、复制运算符、析构函数
class String{
public:
String(const char *str=nullptr){
if(nullptr == str){
m_data=new char[1];
m_data[0]='\0';
}else{
int length=strlen(str);
m_data=new char[length+1];
strcpy(m_data, str);
}
cout<<"构造函数"<<endl;
}
//拷贝构造函数
String(const String &other){
int length=strlen(other.m_data);
m_data = new char[length+1];
strcpy(m_data, other.m_data);
cout<<"拷贝构造函数"<<endl;
}
//赋值
String& operator =(const String& other){
if(this==&other){
return *this;
}else{
delete[] m_data;
int length=strlen(other.m_data);
m_data = new char[length+1];
strcpy(m_data, other.m_data);
return *this;
}
}
//析构
~String(){
delete[] m_data;
cout<<"析构函数"<<endl;
}
private:
char* m_data;
};
void func(){
char* t="12345";
String text1(t);
String text2(text1); //拷贝构造
String text3=text1; //拷贝构造
}