[技术问答] C++:重载运算符和重载函数

[复制链接]
 楼主| 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函数,一个接受整数参数,另一个接受双精度浮点数参数。编译器会根据传入的参数类型来调用适当的函数。
Undshing 发表于 2024-11-17 13:33 | 显示全部楼层
用重载会不会影响阅读啊
734774645 发表于 2024-11-17 14:15 | 显示全部楼层
类里面既可以封装变量也可以封装函数吗?
xuanhuanzi 发表于 2024-11-17 16:11 | 显示全部楼层
C++越来越用的多了
小明的同学 发表于 2024-11-18 14:56 | 显示全部楼层
什么意思,不是C也可以用运算符运输吗,怎么还改名叫重载了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1296

主题

6236

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部

1296

主题

6236

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部