#include <iostream>
using namespace std;
class num
{
public:
num(int m){n = m;cout<<"num("<<n<<")"<<endl;}
~num(){cout<<"~num()"<<endl;}
num(num &m){n = m.n;cout<<"num(&)"<<endl;}
int get(){return n;}
void set(int a){ n = a;}
num& operator=(num &m){cout<<"****************"<<endl;n = m.n; return *this;}
private:
int n;
};
int main()
{
num m1(10);
num m2(90);
cout<<"after create m1, m2"<<endl;
cout<<"m1->n = "<<m1.get()<<" m2->n = "<<m2.get()<<endl;
cout<<"before set m2 = m1"<<endl;
m2 = m1;
cout<<"after set m2 = m1"<<endl;
cout<<"m1->n = "<<m1.get()<<" m2->n = "<<m2.get()<<endl;
cout<<"change m1 value"<<endl;
m1.set(88);
cout<<"m1->n = "<<m1.get()<<" m2->n = "<<m2.get()<<endl;
cout<<"main -over"<<endl;
return 0;
}
result:
num(10)
num(90)
after create m1, m2
m1->n = 10 m2->n = 90
before set m2 = m1
****************
after set m2 = m1
m1->n = 10 m2->n = 10
change m1 value
m1->n = 88 m2->n = 10
main -over
~num()
~num()
2829

被折叠的 条评论
为什么被折叠?



