C++系列十:日常学习-操作符重载

介绍:

在 C++ 中,操作符重载(Operator Overloading)是一种允许我们自定义或改变某些操作符的行为的技术。

案例:

单个参数的简单例子:
#include <iostream>  
  
class MyNumber {  
private:  
    double value;  
  
public:  
    MyNumber(double v) : value(v) {}  
  
    // Overload + operator  
    MyNumber operator+(const MyNumber& other) const {  
        return MyNumber(value + other.value);  
    }  
  
    // Overload - operator  
    MyNumber operator-(const MyNumber& other) const {  
        return MyNumber(value - other.value);  
    }  
  
    // Overload * operator  
    MyNumber operator*(const MyNumber& other) const {  
        return MyNumber(value * other.value);  
    }  
  
    // Overload / operator  
    MyNumber operator/(const MyNumber& other) const {  
        if(other.value != 0.0) {  
            return MyNumber(value / other.value);  
        } else {  
            std::cout << "Error: Division by zero." << std::endl;  
            return MyNumber(0.0);  
        }  
    }  

    // Overload += operator  
    MyNumber& operator+=(const MyNumber& other) {  
        value += other.value;  
        return *this;  
  
    void printValue() const {  
        std::cout << value << std::endl;  
    }  
};  
  
int main() {  
    MyNumber a(11.0);  
    MyNumber b(2.0);  
    MyNumber c = a + b;  
    c.printValue();  // Output: 13.0  
    MyNumber d = a - b;  
    d.printValue();  // Output: 9.0  
    MyNumber e = a * b;  
    e.printValue();  // Output: 22.0  
    MyNumber f = a / b;  
    f.printValue();  // Output: 5.5  

    a += b;          // a = a + b;  
    c.printValue();  // Output: 23.0  
    return 0;  
}

posted @   cactus9  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示