xklc 易传媒 开发组长/高级工程师/技术专家  2002年10月11日
讨论 一个有关构造函数和析构函数的问题??
我有一个程序,代码如下.
#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平台)下调试,出现的结果却是内存报错.不知道什么原因,请各位指教
...全文
45 点赞 收藏 15
写回复
15 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告