没有合适的资源?快使用搜索试试~ 我知道了~
运算符重载后不能改变运算符的操作对象(操作数)的个数;如:"+"是实现两个操作数的运算符,重载后仍然为双目运算符
资源推荐
资源详情
资源评论
C++中的操作符重载详细解析中的操作符重载详细解析
运算符重载后不能改变运算符的操作对象(操作数)的个数;如:"+"是实现两个操作数的运算符,重载后仍然为
双目运算符
一、什么是操作符重载一、什么是操作符重载
操作符重载可以分为两部分:“操作符”和“重载”。说到重载想必都不陌生了吧,这是一种编译时多态,重载实际上可以分为函
数重载和操作符重载。运算符重载和函数重载的不同之处在于操作符重载重载的一定是操作符。我们不妨先直观的看一下所谓
的操作符重载:
复制代码 代码如下:
#include <iostream>
using namespace std;
int main()
{
int a = 2 , b = 3;
float c = 2.1f , d = 1.2f;
cout<<"a + b = "<<a+b<<endl;
cout<<"c + d = "<<c+d<<endl;
return 0;
}
我们看到操作符“+”完成float和int两种类型的加法计算,这就是操作符重载了。这些内置类型的操作符重载已经实现过了,但
是如果现在我们自己写过的类也要实现实现类似的加法运算,怎么办呢??比如现在现在有这样一个点类point,要实现两个
点的相加,结果是横纵坐标都要相加,这时候就需要我们自己写一个操作符重载函数了。
复制代码 代码如下:
#include <iostream>
using namespace std;
class point
{
double x;
double y;
public:
double get_x()
{
return x;
}
double get_y()
{
return y;
}
point(double X = 0.0 , double Y = 0.0):x(X),y(Y){};
point operator +(point p);
};
//重载操作符“+”
point point::operator +(point p)
{
double x = this->x + p.x;
double y = this->y + p.y;
point tmp_p(x,y);
return tmp_p;
}
int main()
{
point p1(1.2,3.1);
point p2(1.1,3.2);
point p3 = p1+p2;
cout<<p3.get_x()<<" "<<p3.get_y()<<endl;
return 0;
}
资源评论
weixin_38601499
- 粉丝: 2
- 资源: 938
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- stm32 usb接口通信
- Chessmate是一款完全免费的国际象棋学习软件,支持引擎分析,学开局、残局、棋书解读、大数据分析等功能
- 总结整理的Android面试Java基础知识点面试资料精编汇总文档资料合集.zip
- .android_lq
- FDN5632N-VB一款SOT23封装N-Channel场效应MOS管
- 毛老板-2404250902.amr
- Java类加载流程(双亲委派)流程图.zip
- FDN5632-NL-VB一款SOT23封装N-Channel场效应MOS管
- 新目标大学英语(第二版)视听说教程 第1册 Unit 4 TOP课件.zip
- 自动驾驶-状态估计和定位之Error State EKF.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功