#include <iostream>
#include <cstring>
using namespace std;
class String{
private:
char *m_str;
public:
String(const char *str=""):m_str(strcpy(new char[str?strlen(str)+1:1],str?str:"")){
}
String(const String& s):m_str(strcpy(new char[strlen(s.m_str)+1],s.m_str)){
}
String& operator=(const String& s){
if(this != &s){
/*
delete [] m_str;
m_str = new char[strlen(s.m_str)+1];
strcpy(m_str,s.m_str);
*/
/*
char *pt = new char[strlen(s.m_str)+1];
strcpy(pt,s.m_str);
delete [] m_str;
m_str = pt;
*/
String stmp(s);
swap(stmp.m_str,m_str);
}
return *this;
}
~String(void){
if(m_str != NULL){
delete [] m_str;
m_str = NULL;
}
}
const char * c_str(){
return m_str;
}
int length()const{
return strlen(m_str);
}
char& operator[](int index){
return m_str[index];
}
const char& operator[](int index)const{
return m_str[index];
}
};
string类的实现
最新推荐文章于 2023-03-04 15:30:40 发布