49、C++/友元、常成员函数和常对象、运算符重载学习20240314

news2025/1/18 8:48:48

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

代码:

#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;
}

运行:

思维导图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1518825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ITK Region 解析

ITK 官方文档里面关于region的讲解&#xff1a;In summary:* LargestPossibleRegion is the total size of the image* BufferedRegion is the portion of the image that iscurrently loaded in memory * RequestedRegion is the portion that the pipelinerequest from a fil…

扭蛋机小程序:互联网发展下的巨大收益潜力

随着人们生活水平的提高&#xff0c;对娱乐消费方式的需求逐渐趋于多样化&#xff0c;扭蛋机进入到了大众的目光中&#xff0c;成为了一个全年龄层都适用的消费模式。扭蛋商品通常是以漫画、动漫、游戏为主题设计&#xff0c;有强大的粉丝基础&#xff0c;市场需求持续增长&…

java数据结构与算法刷题-----LeetCode46. 全排列

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 暴力回溯2. 分区法回溯 1. 暴力回溯 解题思路&#xff1a;时…

精酿啤酒:煮沸、发酵与成熟的过程解析

在啤酒酿造过程中&#xff0c;煮沸、发酵与成熟是重要的环节&#xff0c;它们对啤酒的口感、香气和品质具有决定性的影响。下面将详细解析Fendi Club啤酒在煮沸、发酵与成熟过程中的关键步骤和与众不同之处。 煮沸是啤酒酿造过程中的一个重要环节。在这一步骤中&#xff0c;麦汁…

mfc140u.dll丢失的解决方法,解决mfc140u.dll问题,让程序运行畅通无阻

如果你的电脑丢失了mfc140u.dll文件&#xff0c;那么可能是电脑中的mfc140u.dll文件发成了变化&#xff0c;倒是点找不到mfc140u.dll文件&#xff0c;并运行mfc140u.dll&#xff0c;那么有什么办法可以解mfc140u.dll丢失的问题呢&#xff1f;接了下来就带大脚先了解一下mfc140u…

linux_aarch64_qt环境搭建

平台环境&#xff1a; ubuntu 16.04&#xff1a; gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) aarch64 gnu gcc版本&#xff1a; gcc-linaro-5.4.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz Qt交叉编译版本: qt-everywhere-src-5.12.9.tar.xz 一、aarch64编…

Yolo系列算法-理论部分-YOLOv5

0. 写在前面 YOLO系列博客&#xff0c;紧接上一篇Yolo系列算法-理论部分-YOLOv4-CSDN博客 1. YOLOv5-美而全的产品 YOLOv5的诞生&#xff0c;直接将目标检测算法向终局推进&#xff0c;Ultralytics团队在COCO数据集上预训练的目标检测架构和模型直接开源&#xff0c;其中包含了…

springboot同时接收json数据和 MultipartFile

首先测试接口发送方式。。。。。注意发送结构&#xff01; 后端接收RequestPart SaCheckPermission("system:records:add")Log(title "【用药纪录】", businessType BusinessType.INSERT)RepeatSubmit()PostMapping()public R<Void> add( RequestP…

【上海大学计算机组成原理实验报告】一、数据传送实验

一、实验目的 了解实验仪器数据总线的控制方式。掌握数据传送的基本原理。掌握各寄存器的结构、工作原理及其控制方法。 二、实验原理 根据实验指导书的相关内容&#xff0c;数据输入到寄存器的过程是先通过指令选择源和目标&#xff0c;再通过数据总线来传送数据&#xff0…

mac电脑解决无法打开软件

文章目录 报错内容解决方法一方法二方法三 报错内容 macOS无法验证此App是否包含恶意软件。 解决方法一 打开系统偏好设置>安全性与隐私>通用&#xff0c;这个时候有个按钮&#xff0c;“仍然允许”点击即可。 方法二 按住Control键点按应用, 然后打开&#xff0c…

D1084 5A低压差电压调整器芯片——具有5A输出能力、低压差为1.5V的三端稳压器

1、 概述&#xff1a; D1084是一款具有5A输出能力、低压差为1.5V的三端稳压器。输出电压可通过电位器调节或1.5V, 1.8V, 3.3V三个固定电压版。内含电流限制和热保护功能&#xff0c;防止任何过载时产生过高的结温。D1084系列电路有标准TO-220、TO-263和TO-252封装形式。 2、 典…

AIX7.2下安装qt4.8.7

在AIX安装Qt需要编译安装&#xff0c;编译需要安装xlC编译器。 安装好xlC编译器后我们需要将对应的路径导入到PATH环境变量中 export PATH/opt/IBM/xlC/16.1.0/bin:/opt/IBM/xlc/16.1.0/bin:$PATH 解压 qt-everywhere-opensource-src-4.8.7.tar.gz gunzip -d qt-everywhere…

pr怎么导出mp4格式?正确步骤在这里

在PR中导出MP4格式的视频文件是一项基本而重要的技能&#xff0c;特别是当您希望与他人分享您的创作或在不同平台上展示您的作品时。正确的导出步骤不仅确保视频质量的最大化&#xff0c;还可以确保文件格式的兼容性&#xff0c;使得您的视频能够在各种设备和平台上无缝播放。p…

markdown笔记公式(持续更新)

文章目录 1. 如何插入数学公式2. 加减乘除3. 幂数、指数、对数4. 根号、省略号、向量以及特殊符号&#xff08;大于等于、小于等于&#xff09;、划线5. 累加、累乘6. 矩阵6.1无框矩阵6.2 边框矩阵6.3 带省略符号的矩阵6.4 带分割符号的矩阵6.5 行中矩阵 7. 积分8. 极限运算9. …

【3GPP】【核心网】【5G】5G核心网组网方案(超详细)

5G NR RRC协议总体介绍 1. 开机入网流程 UE入网过程包括几个子过程: 小区搜索与选择 UE开机选网,小区搜索并完成下行同步。 系统消息广播 UE读取广播信息,选择合适小区进行驻留。 随机接入 UE与gNB建立上行同步。 RRC连接建立 …

HTML案例-1.标签练习

效果 源码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head&g…

链路聚合实验(华为)

思科设备参考&#xff1a;链路聚合实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 网络设备的链路聚合技术&#xff08;Link Aggregation&#xff09;是一种将多个物理链路捆绑在一起&#xff0c;形成一个逻辑链路的技术。这样做可以增加带宽、提高可靠性和实现负…

硬件笔记(26)---- 高速电路中滤波电容的选取

先要知道电容的等效电路 其中ESL取决于电容的类型和封装&#xff0c;一般用贴片陶瓷电容为例&#xff0c;对于直插式电解电容&#xff0c;他们的ESL很大。按下表&#xff0c;封装越大&#xff0c;ESL越大&#xff0c;但是0612有些例外 0612和1206就是 长短边的区别&#xff0c;…

【征稿中-EI稳定检索】2024年电力、能源工程和计算机技术国际学术会议 (ICPEECT 2024)

【征稿中-EI稳定检索】2024年电力、能源工程和计算机技术国际学术会议 (ICPEECT 2024) 2024 International Conference on Power, Energy Engineering, and Computer Technology (ICPEECT 2024) 会议官网&#xff1a;http://www.icpeect.com &#xff08;先投稿&#xff0c;先…

【联邦学习贡献评估-数据评估指标的介绍】

跨机构联邦学习 企业或机构作为参与方的联邦学习称为跨机构联邦学习, 也称为企业对企业联邦 学习(business-to-business, B2B FL). 跨机构联邦学习呈现参与方数量少、算力充足、单个参与方数据 量大、存在商业风险顾虑等特点. 案例 典型案例是 FATE 联邦学习平台, 为金融等行…