MST

星途 面试题库

面试题:C++运算符重载三种方式之成员函数重载的适用场景举例

请举例说明在C++中,使用成员函数进行运算符重载适用于什么样的场景,并编写一段简单代码展示对二元运算符 '+' 的成员函数重载,用于两个自定义类对象的相加操作。
26.2万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试

适用场景

在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 函数展示了该重载运算符的使用。