0
点赞
收藏
分享

微信扫一扫

【两个变量】之间可以运算,那么你有想过【两个不同的类】呢

追梦人的自留地 2022-01-16 阅读 72
c++

我们都知道,两个变量之间是可以存在一系列的运算的,那么两个不同的类呢?

举个例子,变量之间:

int a = 9;
int b = 1;
//+  -  *  /  都是可以的


那么接下来:

#include <iostream>
using namespace std;

class MyClass
{
public:
	MyClass();
	~MyClass();

private:

};

int main()
{
	MyClass my;
	MyClass my1;
	my + my1;

	system("pause");
	return 0;
}

很明显,通常情况下类和类之间是不可以直接进行运算的

(其实我们可以这样,然后再那样,哈哈)

这时我们就可以想到运算符的重载

在类的内部实现运算符的重载:

#include <iostream>
using namespace std;

class Family_Money
{
public:
	Family_Money();
	int operator+(const Family_Money& F_money)	//重载+运算符,可以实现类的相加
	{
		return this->father_money + F_money.mother_money;
	}

private:
	int mother_money;		//妈妈的工资
	int father_money;		//爸爸的工资
};

Family_Money::Family_Money() : mother_money(2000), father_money(3000)		//成员初始化列表,在创建对象的时候给定值
{

}

int main()
{
	Family_Money F_money;
	Family_Money F_money1;
	cout << "我们家一个月的工资是:" << F_money + F_money1 << endl;


	system("pause");
	return 0;
}

在类的外部实现运算符的重载:

#include <iostream>
using namespace std;

class Family_Money
{
public:
	Family_Money();

	int mother_money;		//妈妈的工资
	int father_money;		//爸爸的工资
};

Family_Money::Family_Money() : mother_money(2000), father_money(3000)		//成员初始化列表,在创建对象的时候给定值
{

}

//在类外实现运算符的重载
int operator+(const Family_Money& F_money, const Family_Money& F_money1)
{
	return F_money.mother_money + F_money1.father_money;
}

int main()
{
	Family_Money F_money;
	Family_Money F_money1;
	cout << "我们家一个月的工资是:" << F_money + F_money1 << endl;


	system("pause");
	return 0;
}

这就是简单的运算符的重载,如果感觉好的给个三连,还有就是如果有错的希望大佬指出来

举报

相关推荐

0 条评论