主要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;
}
版权声明:本文博客原创文章,转载请注明出处 http://blog.csdn.net/buyingfei8888