参考范磊老师<<零起点学通C++>> 178 p.
#include <iostream>
using namespace std;
class num
{
public:
num(){n = 1;cout<<"num()"<<endl;}
~num(){cout<<"~num()"<<endl;}
num(num &m){this->n =m.n;cout<<"num(&)"<<endl;}
const num operator++(int o){num temp(*this);n++;return temp;}
int get(){return n;}
protected:
int n;
};
int main()
{
num n;
num a;
cout<<n.get()<<" "<<&n<<endl;
cout<<a.get()<<" "<<&a<<endl;
a = n++;
cout<<"----------------++n"<<endl;
cout<<n.get()<<" "<<&n<<endl;
cout<<a.get()<<" "<<&a<<endl;
return 0;
}
result:
num()
num()
1 0x7fffffca48a0
1 0x7fffffca4890
num(&)
~num()
----------------++n
2 0x7fffffca48a0
1 0x7fffffca4890
~num()
~num()