[求助]关于复制构造函数深复制的问题
这是从课本时抄下来的代码,关键看红色那一行,我想问这句 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;
}