void main() { String *pstr=new String();//调用参数为空指针的构造函数 char * str={"abc"}; String *pstr2=new String(str);//调用参数为非空指针的构造函数 pstr=pstr2;//这个是指针赋值,不是对象赋值,应该用 *pstr = *pstr2; 直接指针赋值的结果是pstr变成pstr2,都指向相同地址 String *pstr3=new String (*pstr2);//调用拷贝构造函数 delete pstr; delete pstr2;//因为 pstr变成pstr2,都指向相同地址,这样对同一个对象析构两次,当然会有问题 delete pstr3; }