深拷贝重载 = 运算符,避免释放空间时,两个指针重复释放内存导致出错。
#includeusing namespace std; class A { friend ostream& operator<<(ostream& cout,A a1); int *a; public: A(int x) { a= new int(x); } A& operator=(A& a1) { if(a!=NULL) { delete a; a=NULL; } a = new int(*a1.a); return *this; } ~A() { if(a!=NULL) { delete a; } } }; ostream& operator<<(ostream& cout,A a1) { cout<<*a1.a; } int main() { A a1(5); A a2(6); a1=a2; cout<



