与重载算术运算符一样,关系运算符和逻辑运算符也可以重载 (如 ==, < 或者 &&)。一般情况下,重载运算符返回的是一个对象,但是重载关系运算符和逻辑运算符返回的是一个真值或者假值。与元运算符的行为一致,重载的关系运算符或逻辑运算符也可以用在条件表达式中。
示例代码:
[C++] 纯文本查看 复制代码 #include <iostream>
using namespace std;
class three_d {
public:
int x, y, z;
three_d() { x = y = z = 0; };
three_d (int i, int j, int k) { x = i; y = j; z = k; }
bool operator==(three_d op2);
};
bool three_d::operator==(three_d op2)
{
if ((x == op2.x) && (y == op2.y) && (z == op2.z))
return true;
else
return false;
}
int main()
{
three_d a(1, 2, 3), b(5, 6, 9), c(5, 6, 9);
if (a == b)
cout << "a is equal to b\n";
else
cout << "a is not equal to b\n";
if (b == c)
cout << "b is equal to c\n";
else
cout << "b is not equal to c\n";
return 0;
}
运行输出:$ ./relogic
a is not equal to b
b is equal to c 因为运算符 '==' 返回的是 bool 类型,所以表达式 a == b 的运算结果可以用在 if 条件控制语句中。 |