给我一个用QT实现的计算器的简单例子,要求使用简单工厂模式
时间: 2023-02-09 17:12:15 浏览: 105
好的,这是一个使用简单工厂模式实现的计算器的简单例子。
首先,我们需要创建一个抽象类来定义计算器的接口:
```
class AbstractCalculator {
public:
virtual double calculate(double x, double y) = 0;
};
```
然后,我们可以创建几个具体的计算器类来实现抽象计算器类,例如加法计算器、减法计算器等:
```
class AddCalculator : public AbstractCalculator {
public:
double calculate(double x, double y) {
return x + y;
}
};
class SubCalculator : public AbstractCalculator {
public:
double calculate(double x, double y) {
return x - y;
}
};
```
接下来,我们需要创建一个工厂类来生成具体的计算器对象:
```
class CalculatorFactory {
public:
static AbstractCalculator* createCalculator(char op) {
switch (op) {
case '+':
return new AddCalculator();
case '-':
return new SubCalculator();
// 其他情况
default:
return nullptr;
}
}
};
```
最后,我们可以使用这个工厂类来生成具体的计算器对象,并调用它的计算方法:
```
int main() {
// 使用工厂类生成加法计算器
AbstractCalculator* calculator = CalculatorFactory::createCalculator('+');
double result = calculator->calculate(1, 2);
std::cout << "1 + 2 = " << result << std::endl;
delete calculator;
// 使用工厂类生成减法计算器
calculator = CalculatorFactory::createCalculator('-');
result = calculator->calculate(1, 2);
std::cout << "1 - 2 = " << result << std::endl;
阅读全文