我们都知道,两个变量之间是可以存在一系列的运算的,那么两个不同的类呢?
举个例子,变量之间:
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;
}
这就是简单的运算符的重载,如果感觉好的给个三连,还有就是如果有错的希望大佬指出来