永发信息网

C++深拷贝,以下代码怎么深拷贝???

答案:1  悬赏:0  手机版
解决时间 2021-04-01 08:25
  • 提问者网友:十年饮冰
  • 2021-03-31 10:12
C++深拷贝,以下代码怎么深拷贝???
最佳答案
  • 五星知识达人网友:雪起风沙痕
  • 2021-03-31 10:45
Score(char* name, int score)
{
//this -> name = name;
if (name == NULL)
{
this->name = NULL;
}
else
{
this->name = new char(strlen(name) + 1);
memset(this->name, 0, strlen(name) + 1);
strcpy(this->name, name);
}
this -> score = score;
}
Score(Score &obj)
{
if (obj.name == NULL)
{
this->name = NULL;
}
else
{
this->name = new char(strlen(obj.name) + 1);
memset(this->name, 0, strlen(obj.name) + 1);
strcpy(this->name, obj.name);
}
this -> score = obj.score;
}
~Score()
{
if (this->name != NULL)
{
delete this->name;
}
}
深拷贝构造,就是把类实例里的资源复制一份到新的类实例里,所以要注意资源的释放。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯