当前位置: 首页 > news >正文

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

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

代码:

#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.lryc.cn/news/318403.html

相关文章:

  • SQL Server错误:15404
  • Halcon文件操作
  • 【测试知识】业务面试问答突击版1
  • 使用el-row及el-col页面缩放时出现空行解决方案
  • java中几种对象存储(文件存储)中间件的介绍
  • 网络工程师——2024自学
  • SwiftUI的Picker
  • 物联网技术助力智慧城市转型升级:智能、高效、可持续
  • YOLOv7_pose-Openvino和ONNXRuntime推理【CPU】
  • 通过ACPI检测沙箱-反虚拟机
  • 计算点集的最小外接矩形——OpenCV的minAreaRect函数
  • Stripe Web 购买集成
  • 加密货币在网络违法犯罪活动中的利用情况调查
  • 【测试知识】业务面试问答突击版3---bug、测试用例设计
  • 使用大型语言模型进行实体提取
  • 基础:TCP是什么?
  • el-table中 el-popover 性能优化
  • java数据结构与算法刷题-----LeetCode46. 全排列
  • 听说过Nginx反向代理,那正向代理是什么?
  • 实现elasticsearch和数据库的数据同步
  • SwiftUI的Alert使用方式
  • FPGA高端项目:FPGA基于GS2971的SDI视频接收+GTX 8b/10b编解码SFP光口传输,提供2套工程源码和技术支持
  • 【源码编译】Apache SeaTunnel-Web 适配最新2.3.4版本教程
  • 数据集下载
  • 3、设计模式之工厂模式2(Factory)
  • npm、nodejs和vue之间关系和区别介绍
  • DM数据库安装(Windows)
  • Python的asyncio 多线程
  • 【分类讨论】【解析几何】【 数学】【推荐】1330. 翻转子数组得到最大的数组值
  • 一文了解Spring的SPI机制