C ++實現string
阿新 • • 發佈:2020-12-27
技術標籤:c++
/*
構造析構,拷貝、拷貝賦值版本
*/
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;
};