讨论 一个有关构造函数和析构函数的问题??
xklc 2002-10-11 03:06:02 我有一个程序,代码如下.
#include <iostream.h>
#include <string.h>
class Person
{
public:
Person()
{
}
Person(const Person &p)
{
pName = p.pName;
}
Person(char* pN)
{
cout << "Constructing " << pN << endl;
pName = new char[strlen(pN)+1];
if (pName != 0 )
{
strcpy(pName, pN);
}
}
~Person()
{
if(pName != NULL)
{
cout << "Destructing " << pName << endl;
delete pName;
pName = NULL;
}
}
protected:
char *pName;
};
void main()
{
Person p1("Randy");
Person p2(p1);
}
程序在退出后,输出结果本来应该是:
Constructing Randy
Destructing Randy
Destructing Randy
但是我在vc6.0(win2000平台)下调试,出现的结果却是内存报错.不知道什么原因,请各位指教