这是程序...
class CopyCon
{
public:
char *name;
CopyCon()
{
name = new char;
}
CopyCon(const CopyCon &objCopyCon)
{
name = new char;
_tcscpy(name,objCopyCon.name);
}
~CopyCon()
{
if( name != NULL )
{
delete name;
name = NULL;
}
}
};
int main()
{
CopyCon objCopyCon1;
objCopyCon1.name = "Hai";
CopyCon objCopyCon2(objCopyCon1);
objCopyCon1.name = "Hello";
cout<<objCopyCon2.name<<endl;
return 0;
}
一旦代码执行完成,当调用析构函数时,它会在“删除”时崩溃,说......
调试错误!
程序: ...
检测到堆损坏:在 0x00366990 的正常块 (#124) 之后。CRT 检测到应用程序在堆缓冲区结束后写入内存。
(按重试调试应用程序)
我们不必在析构函数中清除堆内存。这个程序有什么问题?请有人帮忙!复制构造函数按预期完美工作。但是还是……!?