当你的成员数据具有指针数据类型,且这些数据成员涉及 到动态内存分配时,要重写operator = 和拷贝构造函数,例如: 错误的原因是编译器的默认拷贝构造函数和赋值函数只拷贝数据成员的值,并没有分配指针数据成员所指向的内存,所以分配内存只分配了一次,释放内存却释放了二次。 str s1; s1 = s2; // s1._len = s2._len; s1._ps = s2._ps;