能不能帮忙写一下c++类的构造函数,拷贝构造函数,赋值运算符=号的操作符重载,析构函数?求教!

我自己写的确实发现老是出错。。。。。classTest{private:char*data;public://构造函数//拷贝构造函数//赋值运算符=号的操作符重载//析... 我自己写的确实发现老是出错。。。。。
class Test{
private:
char * data;
public:
//构造函数
//拷贝构造函数
//赋值运算符=号的操作符重载
//析构函数
};
展开
 我来答
爱夜009
推荐于2016-08-13 · TA获得超过192个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:210万
展开全部
class Test
{
private:
char * data;
unsigned int len; //记录data 长度
public:
Test(void);
Test(Test &item);
Test::Test(char * item,int n);
void operator =(Test& item);

~Test(void);
};


Test::Test(void)
{
this->data = 0; // 这里一般使用null 代替0
this->len = 0;
}

Test::Test(Test& item) //拷贝
{
unsigned int itemLen = item.len;
char *p,*q;
this->len = item.len;
if( this->len == 0 ) //如果长度为0 初始化数据
{
this->data = 0;
return;  
}

this->data = new char[itemLen];
p = this->data;
q = item.data;
while( itemLen-- &&(*p++ = *q++));

return;  
}

void Test::operator=(Test& item)
{
unsigned int itemLen = item.len;
char *p,*q;
if( this->len > 0)
{
this->len = 0;
delete[] data;
}

this->len = item.len;
if( this->len == 0 )
{
this->data = 0;
return;  
}

this->data = new char[itemLen];
p = this->data;
q = item.data;
while( itemLen-- &&(*p++ = *q++));

return;

}

Test::~Test()
{
if( this->len > 0)
{
delete[] data;
}
}

Test::Test(char * item,int n)
{
unsigned int len = n;
 char *p,*q;
this->len = n;
if( this->len == 0 )
{
this->data = 0;
return;  
}

this->data = new char[n];
p = this->data;
q = item;
while( len-- &&(*p++ = *q++));

return;
 

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式