打印
[新唐博主]

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

[复制链接]
66|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laocuo1142|  楼主 | 2024-11-15 15:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当谈到C++中的重载时,我们通常指的是运算符重载和函数重载。1. 运算符重载(Operator Overloading):在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& 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(2, 3);
    Complex c2(4, 5);
    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函数,一个接受整数参数,另一个接受双精度浮点数参数。编译器会根据传入的参数类型来调用适当的函数。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1188

主题

5182

帖子

12

粉丝