阅读量:0
在 C++ 中,你可以通过定义特殊的成员函数来重载类运算符。这些成员函数以关键字 operator
开头,后面紧跟要重载的运算符,然后是括号,括号内可以包含参数列表(如果有的话)。下面是一些常见的运算符重载示例:
- 重载
+
运算符:
class MyClass { public: int value; MyClass(int v) : value(v) {} MyClass operator+(const MyClass& other) const { return MyClass(value + other.value); } }; int main() { MyClass a(1); MyClass b(2); MyClass c = a + b; // 使用重载的 + 运算符 return 0; }
- 重载
==
运算符:
class MyClass { public: int value; MyClass(int v) : value(v) {} bool operator==(const MyClass& other) const { return value == other.value; } }; int main() { MyClass a(1); MyClass b(1); MyClass c(2); if (a == b) { std::cout << "a and b are equal" << std::endl; } else { std::cout << "a and b are not equal" << std::endl; } if (a != c) { std::cout << "a and c are not equal" << std::endl; } else { std::cout << "a and c are equal" << std::endl; } return 0; }
- 重载
<<
运算符(用于输出):
#include <iostream> class MyClass { public: int value; MyClass(int v) : value(v) {} friend std::ostream& operator<<(std::ostream& os, const MyClass& obj) { os << obj.value; return os; } }; int main() { MyClass a(1); std::cout << "a: "<< a << std::endl; // 使用重载的 << 运算符 return 0; }
注意:当重载 <<
运算符时,通常将其声明为 friend
函数,以便能够访问类的私有和保护成员。