标签:char amp ring == 字符串 c++ pre bool 长度
class String{ public: String(const char* str=NULL); //通用构造函数 String(const String& str); //拷贝构造函数 ~String(); //析构函数 String operator +(const String& str) const; //重载+ String& operator =(const String& str); //重载= String& operator +=(const String& str); //重载+= bool operator ==(const String &str); //重载== char& operator [](int n) const; //重载[] size_t size() const //获取长度 const char* c_str() const; //获取C字符串 friend istream& operator >>(istream& is,String& str); //输入 friend ostream& operator <<(ostream& os,String& str); //输出 private: char* data; //字符串 size_t length; //长度 }
//通用构造函数 String::String(const char* str){ if(!str){ length=0; data=new char[1]; *data=‘\0‘; } else{ length=strlen(str); data=new char[length+1]; strcpy(data,str); } } //拷贝构造函数需要进行深拷贝 String::String(const String& str){ if(!str){ length=str.size(); data=new char[length+1]; strcpy(data,str.c_str()); } } //析构函数需要内存释放和长度归零 String::~String(){ delete[] data; length=0; } //重载字符串连接运算 String String::operator +(const String& str){ String newString; newString.length=length+str.size(); newString.data=new char[newString.length+1]; strcpy(newString.data,data); strcat(newString.data,str.data); return newString; }
标签:char amp ring == 字符串 c++ pre bool 长度
原文地址:https://www.cnblogs.com/k5bg/p/11096880.html