C++:重载运算符和重载函数

文摘   2024-08-13 07:30   内蒙古  

当谈到C++中的重载时,我们通常指的是运算符重载和函数重载。

1. 运算符重载(Operator Overloading):

在C++中,你可以重载许多运算符,如+、-、*、/ 等,以便使它们适用于自定义类的对象。通过运算符重载,你可以定义类对象之间的操作,使其更符合你的需求。

示例:

#include <iostream>

class Complex {
private:
    double real;
    double imag;

public:
    Complex(double r = 0double i = 0) : real(r), imag(i) {}

    // 重载加法运算符
    Complex operator+(const Complex& c) {
        Complex temp;
        temp.real = real + c.real;
        temp.imag = imag + c.imag;
        return temp;
    }

    void display() {
        std::cout << real << " + " << imag << "i" << std::endl;
    }
};

int main() {
    Complex c1(23);
    Complex c2(45);
    Complex sum = c1 + c2; // 使用重载的+运算符

    sum.display();

    return 0;
}

在上面的示例中,我们重载了加法运算符+,使得两个Complex类的对象可以通过+进行相加操作。

2. 函数重载(Function Overloading):

函数重载是指在同一个作用域内,可以定义多个同名函数,但它们的参数列表不同(参数类型、个数或顺序)。编译器会根据调用时提供的参数类型和数量来确定调用哪个函数。

示例:

#include <iostream>

void print(int num) {
    std::cout << "Integer: " << num << std::endl;
}

void print(double num) {
    std::cout << "Double: " << num << std::endl;
}

int main() {
    print(5);       // 调用第一个print函数
    print(3.14);    // 调用第二个print函数

    return 0;
}

在上面的示例中,我们定义了两个重载的print函数,一个接受整数参数,另一个接受双精度浮点数参数。编译器会根据传入的参数类型来调用适当的函数。


兄弟嵌入式
从入门到精通,学习并分享嵌入式软、硬件的知识。
 最新文章