小于号运算符重载函数
bigfly Lv4

什么时候会调用小于号运算符重载函数?

在C++中,小于号运算符(<)的重载函数通常在需要比较两个自定义类型的值时被调用。例如,如果你定义了一个自定义的类或结构体,并希望能够使用小于号运算符来比较该类的对象,那么你需要重载小于号运算符。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>

class MyClass {
public:
int value;

MyClass(int val) : value(val) {}

// 重载小于号运算符
bool operator<(const MyClass& other) const {
return value < other.value;
}
};

int main() {
MyClass obj1(5);
MyClass obj2(10);

if (obj1 < obj2) {
std::cout << "obj1 is less than obj2" << std::endl;
} else {
std::cout << "obj1 is not less than obj2" << std::endl;
}

return 0;
}

在上述示例中,定义了一个名为MyClass的类,它包含一个整数值value。然后,重载了小于号运算符,使其能够根据value的值来比较两个MyClass对象。在main()函数中,创建了两个MyClass对象,并使用小于号运算符进行比较。当obj1的value小于obj2的value时,输出为”obj1 is less than obj2”。否则,输出为”obj1 is not less than obj2”。