c++:简单的运算符重载

/*运算符的重载:赋予运算符新的操作功能,主要用于类对象的操作
其定义形式为:
<函数返回类型 ><类名> :: operator <想要重载的操作符> (<参数表>) {
	函数体
}
(可以把“operator <想要重载的操作符>”看成一个函数名,更好理解)
*/

#include<iostream>
using namespace std;

class Majinnbuu {
	int a, b;
public:
	Majinnbuu(int x=0, int y=0): a(x), b(y) {} //构造函数,这里x,y要赋上初值,否则后面会报错:类Majinnbuu不存在默认构造函数。很奇怪?

	//重载+号,下面为声明,返回值为Majinnbuu对象
	Majinnbuu operator + (Majinnbuu& another1) {//加&号,是个对象的引用。+左边是一个类对象,加号右边的部分(即(Renew)),表示加号右边也是一个Renew类对象的引用
		Majinnbuu result; //定义了一个类对象作为返回值
		result.a = this->a + another1.a;
		result.b = this->b + another1.b;
		return result;
	}
	//重载==号,返回布尔类型的值
	//加不加&的原因,仔细想想
	bool operator ==(Majinnbuu another2) {  //不加&号。
		if (a == another2.a && b == another2.b)
			return true;
		else
			return false;
	}
		int mult() {
		return a * b;
	}
};
int main(){
	Majinnbuu c1(1,2);
	cout << c1.mult() << endl; //2

	Majinnbuu c2(3,4);
	cout << c2.mult() << endl; //12

	if (c1 == c2)
		cout << "相等" << endl;
	else
		cout << "不相等" << endl;

	Majinnbuu c3 = c1 + c2; //其他写法可能报错
	cout << c3.mult() << endl; //24




	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值