/*
构造析构,拷贝、拷贝赋值版本
*/
class sstring{
public:
sstring(const char *p=NULL){//nullptr
if(p==NULL){
_p=new char[1];
_p[0]='\0';
}else{
int len=strlen(p);
_p=new char[len+1];
for(int i=0;i<len;i++){
_p[i]=p[i];
}
_p[len]='\0';
}
}
sstring(const sstring &ss){
int len=strlen(ss._p);
delete[]_p;
_p=new char[len+1];
for(int i=0;i<len;i++){
_p[i]=ss._p[i];
}
_p[len]='\0';
}
sstring&operator=(const sstring& ss){
if(this==&ss){
return *this;
}
delete[]_p;
int len=strlen(ss._p);
_p=new char[len+1];
for(int i=0;i<len;i++){
_p[i]=ss._p[i];
}
_p[len]='\0';
return *this;
}
~sstring(){
delete[]_p;
_p=NULL;
}
private:
char *_p;
};
C ++实现string
最新推荐文章于 2022-05-25 10:54:09 发布