s3=s1+s2;这句代码会调用String类的 operator =操作符。你没定义,用的是默认的,不是深拷贝,string3已经析构
构造函数有问题String::String(char *str){p=str;}p还没有开辟空间