c++ class类运算符重载怎么做

avatar
作者
猴君
阅读量:0

在 C++ 中,你可以通过定义特殊的成员函数来重载类运算符。这些成员函数以关键字 operator 开头,后面紧跟要重载的运算符,然后是括号,括号内可以包含参数列表(如果有的话)。下面是一些常见的运算符重载示例:

  1. 重载 + 运算符:
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; } 
  1. 重载 == 运算符:
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; } 
  1. 重载 << 运算符(用于输出):
#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 函数,以便能够访问类的私有和保护成员。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!