#include <cstring>
class Cstring{
private:
char* _data;
public:
Cstring(const char* str){
if(str!=NULL){
_data = new char[strlen(str)+1];
strcpy(_data,str);
}
else{
_data =new char[1];
*_data = '\0';
/*这样处理的好处是将NULL和非NULL统一处理,Cstring中其他成员函数不需要
对_data是NULL和非NULL分别进行处理,简化成员函数的逻辑*/
}
}
Cstring(const Cstring& src){
this->_data = new char[strlen(str)+1];
strcpy(_data,strc._data);
}
Cstring& operator=(const Cstring& src){
if(this == &src){
return *this;
}
delete[] this->_data;
this->_data = new char[strlen(src._data)+1];
strcpy(this->_data,src._data);
return *this;
}
~Cstring(){
delete[] _data;
}
};