阳信县职业中专朱洪斌:深拷贝问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/16 19:23:10
有一个程序:

#include\"iostream.h\"
#include\"string.h\"

class Person
{
private:
char *name;
public:
Person(char *n=NULL)
{
cout<<\"Construcing...\"<<endl;
name=new char[strlen(n)+1];
strcpy(name,n);
}
~Person()
{
cout<<\"Destroying...\"<<endl;
delete name;
}
};

int main()
{
Person p1(\"Zhang San\",\"China\");
Person p2=p1;
return 0;
}
它在MinGW下课顺利编译运行,而在VC++下只能编译成功,运行时就有错误。这个程序的确是有问题的,但在MinGW下为什么能运行?MinGW好像是用的GCC的编译器。