C++ 简单工厂模式实现加减运算
class Operator {
protected:
int firstParameter;
int secondParameter;
public:
Operator(int firstP, int secondP) : firstParameter(firstP), secondParameter(secondP) {}
virtual int getResult() = 0;
};
class Add : public Operator {
public:
Add(int firstP, int secondP) : Operator(firstP, secondP) {}
int getResult() override {
return firstParameter + secondParameter;
}
};
class Sub : public Operator {
public:
Sub(int firstP, int secondP) : Operator(firstP, secondP) {}
int getResult() override {
return firstParameter - secondParameter;
}
};
class OperatorSimpleFactory {
public:
static Operator* createOperator(std::string oper, int firstP, int secondP) {
if (oper == '+') {
return new Add(firstP, secondP);
} else {
return new Sub(firstP, secondP);
}
}
};
int main() {
std::string oper = "";
int firstP;
int secondP;
std::cout << '请输入想要进行的操作:' << std::endl;
std::cin >> oper;
std::cout << '请输入操作数1:' << std::endl;
std::cin >> firstP;
std::cout << '请输入操作数2:' << std::endl;
std::cin >> secondP;
Operator* op = OperatorSimpleFactory::createOperator(oper, firstP, secondP);
std::cout << op->getfirstP() << oper << op->getsecondP() << '=' << op->getResult() << std::endl;
std::cout << '运行结束' << std::endl;
return 0;
}
原文地址: http://www.cveoy.top/t/topic/bxyC 著作权归作者所有。请勿转载和采集!