主要是4个默认函数的重写:
代码:
#include <iostream> using namespace std; class Cstring{ private : char * data; public : Cstring(const char * str =NULL); Cstring(const Cstring &another); ~Cstring(); Cstring & operator=(const Cstring &another); }; //赋值构造函数 Cstring & Cstring::operator=(const Cstring &another){ if(this == &another) return *this; delete [] data; data = NULL; data = new char(strlen(another.data) + 1 ); strcpy(data,another.data); return * this; } //普通构造函数 Cstring::Cstring(const char *str){ if(str == NULL){ data = new char[1]; data[0] = '\0'; }else{ data = new char[strlen(str)+1]; strcpy(data,str); } } //拷贝构造函数 Cstring::Cstring(const Cstring & another){ data = new char(strlen(another.data) + 1); strcpy(data,another.data); } //析构函数 Cstring ::~Cstring(){ delete data; } void main(){ Cstring str("hello,world"); Cstring st(str),test2; Cstring test1 = test2 = st; }
重写String类
时间: 2024-10-19 16:43:06