拷贝构造函数问题
#include<iostream.h>
#include<string.h>
#include<stdio.h>
class Person
{
public:
Person(char* pN);
Person(Person& p);
~Person();
protected:
char* pName;
};
Person::Person(char* pN)
{
cout<<"Constructing "<<pN<<endl;
if(pName!=0)
{
strcpy(pName,pN);
}
}
Person::Person(Person& p)
{
cout<<"Copying "<<p.pName<<" into its own block\n";
pName=new char[strlen(p.pName)+1];
if(pName!=0)
strcpy(pName,p.pName);
}
Person::~Person()
{
cout<<"Destructing "<<pName<<endl;
pName[0]='\0';
delete pName;
}
void main()
{
Person p1("Randy");
Person p2=p1;
}
自定义了一个拷贝构造函数,而且也拷贝了构造函数的资源
为什么我在vc6.0下运行,还是错误啊