class String {
public:
String(char* pp) :sz(strlen(pp)), p(new char[sz+]) { strcpy(p,pp); }
~String() { delete[] p; }
char& operator[](int i) { return p; }
private:
int sz;
char* p;
}; void f(char* x)
{
String s1(x);
String s2 = s1;
}
14:String s2 = s1,s2调用默认拷贝构造函数,s2.p 和 s1.p是指向同一个内存。所以会存在对同一块内存的两次delete
写带指针成员变量的类要注意才行
参考:这里