运算符重载

注明:关于运算符重载的问题,我遇到过很多次,依然没有记住。痛心疾首!

运算符重载的典型使用:在玩游戏时弹出来一个广告,我们点关闭结果打开了广告,就是代码定义的是打开给我们显示的是关闭。

运算符重载:

1.概念:把运算符operator+当做一个函数来看,把对象当做一个复数,来进行实部与实部,虚部与虚部的相加。返回一个对象。

Complex operator + (Complex &c2);  //  Complex是函数类型,operator+为函数名,c2为另一个对象,也就是要操作的对象。

.h文件

#ifndef COMPLEX_H_
#define COMPLEX_H_
//复数
class Complex
{
public:
double i;
double j;
Complex();  //构造函数
Complex(double i, double j);  //构造函数
Complex operator + (Complex &c2);   //普通函数也就是运算符重载的函数
void show();
};

#endif /* COMPLEX_H_ */

.cpp文件

#include "Complex.h"
#include <iostream>
using namespace std;


Complex::Complex()
{
this->i = 0;
this->j = 0;
}
Complex::Complex(double i,double j) {
this->j = j;
this->i = i;
}
void Complex::show() {
cout<<"i="<<this->i<<":j="<<this->j<<endl;
}
Complex Complex::operator + (Complex &c2) {    //进行两个对象的相加,实部与实部相加,虚部与虚部相加。
Complex c;//c.i==0; c.j==0
c.i = this->i + c2.i;//c.i=1+1.1
c.j = this->j + c2.j;//c.j=2+2.2
//c.i=2.1; c.j=4.2
return c;    //返回和的对象

}

//C语言也可以用运算符重载,但是必须加friend或者把变量定义为public,私有的访问不到。

main.cpp文件

#include <iostream>
using namespace std;
#include "Complex.h"
void f1()
{
Complex c1(1,    2);//c1.i=1;c1.j=2
Complex c2(1.1,  2.2);//c2.i=1.1;c2.j=2.2
// Complex c3 = c1.operator+(c2);//c3.i=2.1; c3.j=4.2
Complex c3 = c1 + c2;
c3.show();
}
int main() {
f1();
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值