二元运算符
针对二个参数操作的
如 : +、-、*、/、&&、||、>、< 、>=、<= 等。
下面实例演示如何重载二元加运算符( + ),二元运算符(>)。
#include <iostream>
using namespace std;
class Number
{
public:
int val;
Number(int a)
{
val = a;
}
//类内重载二元运算符 + 对象 + 常数
void operator + (const int a)
{
cout << "对象 + 常数 = ";
cout << (val + a) << endl;
}
//类内重载二元运算符 + 对象 + 对象
int operator + (const Number &num_1)
{
return (this->val + num_1.val);
}
};
//类外重载二元运算符 + 常数 + 对象
void operator + (const int a, const Number &num)
{
cout << "常数 + 对象 = ";
cout << (a + num.val) << endl;
}
//类外重载二元运算符 >
int operator > (const Number &num, const Number &num_1)
{
return (num.val > num_1.val);
}
int main()
{
Number num(1),
num_1(3);
// 重载运算符 + 相关操作
num + 5;
3 + num;
cout << "对象 + 对象 = ";
cout << (num + num_1) << endl;
//重载运算符 > 的相关操作
cout << "num > num_1 ? : ";
cout << (num > num_1) << "(1是大于, 0是小于)" << endl;
cin.get();
return 0;
}
程序运行结果:
对于其它的二元运算符重载,可以自行尝试。
注:如果要实现连续相加,可以把添加返回值。