2 anhaoxuan anhaoxuan 于 2016.04.30 17:28 提问

关于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
请问问题出在哪里?

4个回答

ftlisdcr
ftlisdcr   2016.04.30 20:05
已采纳

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

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

anhaoxuan
anhaoxuan 谢谢您的指点 这些日子我忙于其他事物现在才采纳 抱歉 愿您幸福平安!
大约 2 年之前 回复
gotope
gotope   2016.04.30 20:49

three.get()
加上能得出3

anhaoxuan
anhaoxuan 谢谢您的指点 幸福 平安
大约 2 年之前 回复
CSDNXIAON
CSDNXIAON   2016.04.30 17:32

C++中的运算符重载问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

nblsadnfh
nblsadnfh   2016.04.30 18:34

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c++运算符重载字符串想加
阿斯达所多 #include using namespace std; class C { private: string s; public: C(){} C(string a) { s=a; } C operator+(C &b) { C c; c.s=s+b.s; return c; } void show() {
C/C++运算符重载实现字符串相加
#include<iostream> #include<string.h> using namespace std; class String { public: String() { p=NULL; } String(char *str); friend String operator + (Stri
C/C++ 重载+运算符重载加号 实现矩阵相加
#include<iostream> #include<iomanip> using namespace std; class Complex { private: int i,j,n,a[2][3]; public: Complex(); Complex operator+(Complex &c); void disp
使用运算符重载实现复数的加法运算
在使用运算符
YTU 2907: 类重载实现矩阵加法
2907: 类重载实现矩阵加法 时间限制: 1 Sec  内存限制: 128 MB 提交: 345  解决: 164 题目描述 编写矩阵类Matrix,实现两个2x3矩阵相加。主函数已给定。 输入 两个矩阵的元素值 输出 两个矩阵相加的结果 样例输入 1 2 34 5 61 2 34 5 6 样例输出 2 4 68 10 12 提示
矩阵求和-重载运算符
/* *程序的版权和版本声明部分: *Copyright(c)2014,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:田成琳 *完成日期:2014 年 5 月 13 日 *版本号:v1.0 *对任务及求解方法的描述部分: *输入描述:两个2行3列的矩阵 *问题描述:有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使
运算符的重载(复数的加减)
2016年6月7日,运算符重载的练习。 下面是代码:#include<cstdio> #include<cstring> #include<cstring> #include<iostream> #include<algorithm> using namespace std;class Complex { public: Complex(double r=0.0,double i=0.0)
C++习题 矩阵求和--重载运算符
/* Description 有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加(如c=a+b)。 重载流插入运算符“>”,使之能用于该矩阵的输入和输出。 Input 两个2行3列矩阵 Output 矩阵之和 Sample Input 1 2 3 4 5 6 7 8 9 1 2 3 Sample Output 8 10 12 5 7 9 */ #include
大整数加法计算思路与算法实现
大整数加法
C++时间类的运算符重载
 Description C++时间类的运算符重载 定义一个时间类Time,其数据成员为表示时间的小时(hour)、分(minute),秒(second)。 重载运算符“+”,使之能用于时间对象的加法运算;重载运算符“ (1)参加运算的两个操作数可以都是时间类对象,也可以其中有一个是整数(表示秒),顺序任意。 例如,t1+t2,i+t1,t1+i均合法(设i为整数表示秒数, t