Person& operator=(const Person& other)
{
char* newname = NULL;
try {
newname = new char[strlen(other.name)+1];
strcpy(other.name, name);
std::swap(name, newname);
delete [] newname;
return *this;
} catch(...) {
delete [] newname;
throw;
}
UGVyc29uJiBvcGVyYXRvcj0oY29uc3QgUGVyc29uJiBvdGhlcikKewogICAgY2hhciogbmV3bmFtZSA9IE5VTEw7CiAgICB0cnkgewogICAgICAgIG5ld25hbWUgPSBuZXcgY2hhcltzdHJsZW4ob3RoZXIubmFtZSkrMV07CiAgICAgICAgc3RyY3B5KG90aGVyLm5hbWUsIG5hbWUpOwogICAgICAgIHN0ZDo6c3dhcChuYW1lLCBuZXduYW1lKTsKICAgICAgICBkZWxldGUgW10gbmV3bmFtZTsKICAgICAgICByZXR1cm4gKnRoaXM7CiAgICB9IGNhdGNoKC4uLikgewogICAgICAgIGRlbGV0ZSBbXSBuZXduYW1lOwogICAgICAgIHRocm93OwogICAgfQ==