标题:[求助]关于复制构造函数深复制的问题
取消只看楼主
ljhwahaha
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-3-13
 问题点数:0 回复次数:1 
[求助]关于复制构造函数深复制的问题
这是从课本时抄下来的代码,关键看红色那一行,我想问这句 pName[0]='\0'; 究竟有什么意义呢?? 这样做不会影响delete的执行吗?

Name::Name(char *pn)
{
cout<<"Constructing"<<pn<<endl;
pName=new char[strlen(pn)+1];
if(pName!=0)
strcpy(pName,pn);
size=strlen(pn);
}
Name::Name(const Name &Obj)
{
cout<<"Copying"<<Obj.pName<<"into its own block\n";
pName=new char[strlen(Obj.pName)+1];
if(pName!=0)
strcpy(pName,Obj.pName);
size=Obj.size;
}
Name::~Name()
{
cout<<"Destructing"<<pName<<endl;
pName[0]='\0';
delete []pName;
pName=NULL;
size=0;
}
搜索更多相关主题的帖子: 函数 构造 pName Obj 
2007-03-19 19:26
ljhwahaha
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-3-13
得分:0 

其他部分就是类说明和main函数,是这样的

#include<iostream>
#include<string.h>



class Name
{
public:
Name (char *pn);
Name(const Name& Obj);
~Name();
private:
char *pName;
int size;
};
void f();

int main()
{
f();

}

2007-03-19 23:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-125223-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.402419 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved