new分配的对象都是未命名的,new永远不返回实际被分配的对象,只返回这个对象的地址。对象的所有操作都通过这个地址间接完成。
delete只能释放new分配的指针。例如:
string
ps ;
string * ps1 = new string ();
string * ps2 = & ps;
delete ps1;
delete ps2; // 这个语句能编译通过,但出现运行其错误。
string * ps1 = new string ();
string * ps2 = & ps;
delete ps1;
delete ps2; // 这个语句能编译通过,但出现运行其错误。