实现一个string类
-
类的封装
class String { public: String(const char *str = NULL); //通用构造函数 String(const String &anather); //拷贝构造函数 ~String(); //析构函数 String & oprater = (const String &rhs); //赋值函数,通过赋值运算符重载实现 private: char *m_data; //用于保存字符串 }
-
类的实现
//通用构造函数 String::String(const char *str) { if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断 { m_data = new char[1] ; m_data[0] = '\0' ; } else { m_data = new char[strlen(str) + 1]; strcpy(m_data,str); } } //拷贝构造函数 String::String(const String &another) { m_data = new char[strlen(another.m_data) + 1]; strcpy(m_data,other.m_data); } //赋值函数 String& String::operator =(const String &rhs) { if ( this == &rhs) return *this ; delete []m_data; //删除原来的数据,新开一块内存 m_data = new char[strlen(rhs.m_data) + 1]; strcpy(m_data,this.m_data); return *this ; } //析构函数 String::~String() { delete []m_data ; }