面试题答案
一键面试适用场景
在C++ 中,使用成员函数进行运算符重载适用于需要对自定义类对象进行与内置类型类似的运算符操作的场景。比如,当我们定义了一个表示向量、矩阵、复数等数学对象的类,希望对这些对象进行加、减、乘等运算时,就可以通过成员函数重载相应的运算符,使得代码更加直观和易于理解,就像操作内置类型一样。例如复数类,通过重载 +
运算符,可以方便地实现两个复数相加。
代码示例
#include <iostream>
class Complex {
private:
double real;
double imag;
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
// 重载 '+' 运算符,成员函数形式
Complex operator+(const Complex& other) {
return Complex(real + other.real, imag + other.imag);
}
void display() {
std::cout << real;
if (imag >= 0) {
std::cout << " + " << imag << "i";
} else {
std::cout << " - " << -imag << "i";
}
std::cout << std::endl;
}
};
int main() {
Complex c1(3, 4);
Complex c2(1, -2);
Complex result = c1 + c2;
result.display();
return 0;
}
在上述代码中,定义了 Complex
类来表示复数,通过成员函数 operator+
重载了 +
运算符,使得两个 Complex
对象可以像内置类型一样进行相加操作。main
函数展示了该重载运算符的使用。