关于C++加法运算符重载的一个超简单问题

以下代码:
#include
using namespace std;
class num
{
public:
num(){n=1;cout<<"构造函数执行\n";}
num(int i){n=i;cout<<"带一个参数的构造函数执行\n";}
num(const num&s){this->n=s.n;cout<<"复制构造函数执行\n";}
~num(){cout<<"析构函数执行\n";}
int get()const{return n;}
void set(int x){n=x;}
const num operator+(const num&r){return num(n+r.get());}

private:
int n;
};
int main()
{
num one(1),two(2),three;
three=one+two;
cout<<"one:"<<one.get()<<endl;
cout<<"two:"<<two.get()<<endl;
cout<<"three:"<<three.get<<endl;
return 0;

}

运行后three的结果我希望是3
但程序返回的是1
请问问题出在哪里?

3个回答

事实证明结果的确就是3啊图片说明

还有,你的代码里three.get都没有“()”,真的能运行通不报错吗?

anhaoxuan
anhaoxuan 谢谢您的指点 这些日子我忙于其他事物现在才采纳 抱歉 愿您幸福平安!
4 年多之前 回复

three.get()
加上能得出3

anhaoxuan
anhaoxuan 谢谢您的指点 幸福 平安
4 年多之前 回复

运行没有问题,答案是3啊。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐