在C++中,運算符重載是一種允許你自定義已有運算符行為的方法。這可以使代碼更易于閱讀和理解,同時提高代碼的可重用性。運算符重載的基本語法如下:
返回類型 operator運算符 (參數列表) {
// 運算符重載的實現代碼
}
以下是一些常見的運算符重載示例:
class Complex {
public:
Complex(double real, double imag) : real_(real), imag_(imag) {}
Complex operator+(const Complex& other) const {
return Complex(real_ + other.real_, imag_ + other.imag_);
}
private:
double real_;
double imag_;
};
class Complex {
public:
Complex(double real, double imag) : real_(real), imag_(imag) {}
Complex operator*(const Complex& other) const {
return Complex(real_ * other.real_ - imag_ * other.imag_, real_ * other.imag_ + imag_ * other.real_);
}
private:
double real_;
double imag_;
};
class Person {
public:
Person(const std::string& name, int age) : name_(name), age_(age) {}
bool operator<(const Person& other) const {
return age_ < other.age_;
}
private:
std::string name_;
int age_;
};
class MyClass {
public:
void print() const {
std::cout << "MyClass object" << std::endl;
}
};
MyClass operator()(const MyClass& obj) {
obj.print();
return obj;
}
注意:不是所有的運算符都可以被重載,例如賦值運算符(=)、比較運算符(==, !=, >, <, <=, >=)等。但是你可以為類定義自定義的運算符,只要它們符合C++的語法規則。