已解决
1.简单工厂模式
来自网友在路上 162862提问 提问时间:2023-09-22 21:23:59阅读次数: 62
最佳答案 问答题库628位专家为你答疑解惑
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;}};
查看全文
99%的人还看了
猜你感兴趣
版权申明
本文"1.简单工厂模式":http://eshow365.cn/6-11676-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 《DevOps实践指南》- 读书笔记(九)
- 下一篇: Linux 作业