关于运算符重载时 返回值的问题
#include<iostream>
using namespace std;
class num
{
public:
num()
{
n=99;
cout<<"creat0"<<endl;
}
num(int i)
{
n=i;
cout<<"creat1"<<endl;
}
~num()
{cout<<"destroyed"<<endl;}
num(num&a)
{
n=a.n;
cout<<"copy"<<endl;
}
int get() const{return n;}
void set(int x){n=x;}
const num operator+(const num&r)
{
return num(r.get()+n);
}
num &operator++()
{
++n;
return *this;
}
num operator++(int)
{
num temp(*this);
++n;
return temp;
}
num operator=(num &r) //重载"="运算符 并返回一个num类对象
{
return this->n=r.get(); //这里我认为是返回了n 可是编译还是过了 不理解原理 望解释
}
private:
int n;
};
int main()
{
num one(1),two(2),three;
three=two;
cout<<one.get()<<endl;
cout<<two.get()<<endl;
cout<<three.get()<<endl;
return 0;
}