类 String 的构造函数、析构函数和赋值函数

来源:互联网 发布:北京专业数据恢复 编辑:程序博客网 时间:2024/05/17 05:19
class String{public:String(const char *str = NULL ) ; //普通构造函数String(const String &other ) ; //拷贝构造函数~String( void ) ;  //析构函数String &operator=(const String &other) ; //赋值函数private:char *m_data ;  //用于保存字符串};//String 的普通构造函数String::String(const char *str){if (str == NULL){m_data = new char[1] ;*m_data = '\0' ;}else{int length  = strlen(str) ;m_data = new char[length + 1] ;strcpy(m_data , str) ;}}//拷贝构造函数String::String(const String &other ){int length = strlen(other.m_data) ;m_data = new char[length + 1] ;strcpy(m_data , other.m_data) ;}//赋值函数String &String::operator=(const String &other){if (this == &other) //检查自赋值{return *this;}delete []m_data ; //释放原有的内存//分配新的内存资源, 并复制内容int length = strlen(other.m_data) ;m_data = new char[length + 1] ;strcpy(m_data , other.m_data) ;//返回本对象的引用return *this;}char *strcpy(char *strDest , const char *strSrc){assert((strDest != NULL) && (strSrc != NULL)) ;char *p = strDest ;while((*strDest++ = *strSrc++) != '\0');return p;}

0 0
原创粉丝点击