运算符重载 - 自定义运算符行为

引言

C++ 是一种支持面向对象编程(OOP)的编程语言,它允许程序员通过运算符重载来自定义类的行为。运算符重载使得我们可以为自定义类型定义与内置类型相似的操作方式,从而使代码更加直观和易读。

本文将详细介绍 C++ 中的运算符重载机制,包括常见的运算符、重载方法以及注意事项,帮助读者理解并掌握这一强大的特性。


1. 什么是运算符重载?

运算符重载是指为已有的运算符赋予新的含义,使其能够操作用户自定义的数据类型(如类或结构体)。通过运算符重载,我们可以让自定义类型像内置类型一样使用标准运算符,从而提高代码的可读性和简洁性。

例如,假设我们有一个复数类 Complex,我们可以通过运算符重载来实现复数之间的加法、减法等操作:

class Complex {
private:
    double real;
    double imag;

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

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

    // 减法运算符重载
    Complex operator-(const Complex& other) const {
        return Complex(real - other.real, imag - other.imag);
    }

    // 打印函数
    void print() const {
        std::cout << "(" << real << ", " << imag << "i)" << std::endl;
    }
};

int main() {
    Complex c1(3, 4);
    Complex c2(1, 2);

    Complex sum = c1 + c2;
    Complex diff = c1 - c2;

    sum.print();  // 输出: (4, 6i)
    diff.print(); // 输出: (2, 2i)

    return 0;
}

在这个例子中,我们为 Complex 类重载了加法运算符 +&nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值