阅读量:0
在C++中,可以通过定义成员函数或非成员函数来实现运算符重载。以下是一些示例代码:
- 重载加法运算符:
class Complex { private: double real; double imaginary; public: Complex(double r, double i) : real(r), imaginary(i) {} Complex operator+(const Complex& other) { return Complex(real + other.real, imaginary + other.imaginary); } }; int main() { Complex c1(1, 2); Complex c2(3, 4); Complex result = c1 + c2; return 0; }
- 重载自增运算符:
class Number { private: int value; public: Number(int v) : value(v) {} Number& operator++() { value++; return *this; } }; int main() { Number num(5); ++num; return 0; }
- 重载流插入运算符:
#include <iostream> class Complex { private: double real; double imaginary; public: Complex(double r, double i) : real(r), imaginary(i) {} friend std::ostream& operator<<(std::ostream& os, const Complex& c) { os << c.real << " + " << c.imaginary << "i"; return os; } }; int main() { Complex c(1, 2); std::cout << c << std::endl; return 0; }
需要注意的是,运算符重载一般应该符合运算符的原有语义,遵循常规的运算符规则,并不应该引入令人困惑的行为。