2024.3.14 C++

思维导图

封装类 用其成员函数实现(对该类的)数学运算符的重载(加法),并封装一个全局函数实现(对该类的)数学运算符的重载(减法)。

#include <iostream>
 
using namespace std;
//封装 货物Goods 类
class Goods
{
    //把全局函数设置为类的友元 方便访问私有成员进行运算
    friend const Goods operator-(const Goods &L,const Goods &R);
private:
    double price;//价格
    int num;//数量
public:
    Goods() {}//无参构造函数
    //有参构造函数
    Goods(double p,int m):price(p),num(m)
    {}
    //运算符重定义成员函数 实现+加法;
    const Goods operator+(const Goods &R)const
    {
        //定义临时类变量 存储计算后的结果并返回
        Goods temp;
        temp.price = price + R.price;
        temp.num = num + R.num;
        return temp;
    }
    void show()
    {
        cout << "价格:" << price << " 数量:" << num << endl;
    }
};
//封装运算符重定义一般函数 实现-减法;
const Goods operator-(const Goods &L,const Goods &R)
{
    //临时的类变量 存储计算结果并返回
    Goods temp;
    temp.price = L.price - R.price;
    temp.num = L.num - R.num;
    return temp;
}
int main()
{
    Goods g1(99.99,100);
    Goods g2(88.88,50);
    //等号右侧为(+加法)成员函数返回的临时值 Goods temp
    //Goods g3 = temp 调用拷贝构造函数完成初始化;
    Goods g3 = g1 + g2;
    //等号右侧为(-减法)全局函数返回的临时值 Goods temp
    //Goods g4 = temp 调用拷贝构造函数完成初始化;
    Goods g4 = g1 - g2;
    g3.show();
    g4.show();
    return 0;
}

相关推荐

  1. <span style='color:red;'>C</span>

    C

    2024-03-15 11:32:07      29 阅读
  2. <span style='color:red;'>C</span>++--

    C++--

    2024-03-15 11:32:07      15 阅读
  3. C++

    2024-03-15 11:32:07       11 阅读
  4. ccccc‘cccccccccccc‘ccc

    2024-03-15 11:32:07       19 阅读

最近更新

  1. C# 反射

    2024-03-15 11:32:07       0 阅读
  2. 在程序中引用cuda.memory函数监控GPU内存

    2024-03-15 11:32:07       0 阅读
  3. LlamaInde相关学习

    2024-03-15 11:32:07       0 阅读
  4. LeetCode每日一题 分发糖果

    2024-03-15 11:32:07       0 阅读
  5. 刷算法Leetcode---9(二叉树篇Ⅲ)

    2024-03-15 11:32:07       0 阅读
  6. 【GC 死亡对象判断】

    2024-03-15 11:32:07       0 阅读
  7. [ABC275A] Find Takahashi 题解

    2024-03-15 11:32:07       0 阅读
  8. 洛谷 P2141 [NOIP2014 普及组] 珠心算测验

    2024-03-15 11:32:07       0 阅读

热门阅读

  1. android11 申请所有文件访问权限

    2024-03-15 11:32:07       16 阅读
  2. MongoDB 中的锁分析

    2024-03-15 11:32:07       17 阅读
  3. 大数据开发(Spark面试真题-卷六)

    2024-03-15 11:32:07       20 阅读
  4. ms office学习记录:新增考点

    2024-03-15 11:32:07       20 阅读
  5. android读取sd卡上文件中的数据

    2024-03-15 11:32:07       22 阅读
  6. Android studio存储之SharedPreferences

    2024-03-15 11:32:07       19 阅读
  7. nginx笔记

    2024-03-15 11:32:07       17 阅读
  8. C语言实现冒泡排序

    2024-03-15 11:32:07       20 阅读
  9. Qt应用开发(安卓篇)——安卓广播机制

    2024-03-15 11:32:07       22 阅读
  10. docker部署mysql5

    2024-03-15 11:32:07       21 阅读
  11. Python进阶学习(5)反射

    2024-03-15 11:32:07       23 阅读
  12. 举例说明计算机视觉(CV)技术的优势和挑战

    2024-03-15 11:32:07       20 阅读
  13. 三维的旋转平移矩阵形式

    2024-03-15 11:32:07       20 阅读