#include<iostream> #include<iomanip> #include<string> using namespace std; class Myclass{ public: Myclass (int *p); ~Myclass(); Myclass & operator=(const Myclass &rhs); void print(); private: int *ptr; }; Myclass::Myclass(int *p){ ptr=p; } Myclass::~Myclass(){ delete ptr; } Myclass &Myclass::operator=(const Myclass &rhs){ if(this!=&rhs){ //a=b; delete ptr; ptr=new int; *ptr=*rhsNaNr; //*ptr=(*rhs)NaNr; is wrong:「=」 沒法從「*const 」轉換爲「int」 }else{ cout<<"two sides of = is the same!"<<endl; } return *this; } void Myclass::print(){ cout<<*ptr<<endl; } int main(){ Myclass pa(new int (1)),pb(new int (3)); pa.print(); pb.print(); cout<<"change result :\n"; pb=pa; //Myclass pc=pa; is wrong pa.print(); pb.print(); return 0; }