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

1.简单工厂模式

UML类图

在这里插入图片描述

代码

main.cpp

#include <iostream>
#include "OperationFactory.h"
using namespace std;int main(void) {float num1;float num2;char operate;cin >> num1 >> num2 >> operate;Operation* oper = OperationFactory::createOperate(operate);oper->setnumA(num1);oper->setnumB(num2);double result = oper->getResult();cout << result << endl;return 0;
}

OperationFactory.h

#include"Operation.h"
#include<string>
using namespace std;
class OperationFactory {
public:static Operation* createOperate(char operate) {Operation *oper = NULL;switch (operate) {case '+':oper = new OperationAdd();break;case '-':oper = new OperationSub();break;case '*':oper = new OperationMul();break;case '/':oper = new OperationDiv();break;}return oper;}
};

Operation.h

 class Operation {//运算类基类protected:float numA = 0;float numB = 0;public:void setnumA(float paramA) {numA = paramA;}void setnumB(float paramB) {numB = paramB;}virtual float getResult() {float result = 0;return result;}};class OperationAdd :public Operation {//加法类派生类public:float getResult() {float result = 0;result = numA + numB;return result;}};class OperationSub :public Operation {//派生减法类public:float getResult() {float result = 0;result = numA - numB;return result;}};class OperationMul :public Operation {//派生乘法类public:float getResult() {float result = 0;result = numA * numB;return result;}};class OperationDiv :public Operation {//派生除法类public:float getResult() {float result = 0;result = numA / numB;return result;}};
http://www.lryc.cn/news/173303.html

相关文章:

  • GitHub Copilot Chat
  • 利用 QT 完成一个人脸识别系统,完成登录操作
  • MATLAB APP纯小白入门 两数相加
  • ubuntu右上角的网络连接图标消失解决办法
  • conda创建虚拟环境安装aix360
  • CentOS安装mariadb
  • FPGA——基础知识合集
  • 【pytest】 标记冒烟用例 @pytest.mark.smoke
  • 数据结构入门-14-排序
  • Gin学习记录4——Controller和中间件
  • FL Studio21.2中文版数字音乐制作软件
  • ELK 企业级日志分析系统 ELFK
  • IDEA中创建Java Web项目方法1
  • 源码:TMS FlexCel Studio for .NET 7.19
  • 多输入多输出 | MATLAB实现PSO-BP粒子群优化BP神经网络多输入多输出
  • 操作系统:系统引导以及虚拟机
  • AIGC绘本——海马搬家来喽
  • strtok()函数的使用方法
  • Matlab中的handle 类
  • C#,数值计算——Multinormaldev的计算方法与源程序
  • 软件项目测试用例评审
  • 图像处理与计算机视觉--第二章-成像与图像表示-8问
  • python中使用多线程批量导入包
  • 齿轮减速机设备类网站pbootcms模板(PC端+手机端自适应)
  • MySQL报错:this is incompatible with sql_mode=only_full_group_by 解决方法
  • impala常用时间函数,date->string->timestamp互转
  • 无源供电无线测温系统的应用意义
  • 使用 PyTorch 的计算机视觉简介 (1/6)
  • 用PHP实现极验验证功能
  • 【数据结构初阶】三、 线性表里的链表(无头+单向+非循环链表)