C++ 多态魔法:实现双操作数计算器类全揭秘
为了实现一个C++计算器类,我们可以使用多态技术。首先,我们需要创建一个基类`Calculator`,然后创建两个派生类`AdditionCalculator`和`SubtractionCalculator`,分别用于加法和减法运算。在基类中,我们将定义一个纯虚函数`calculate`,在派生类中实现这个函数。我们可以创建一个工厂函数来根据用户输入的操作符创建相应的计算器对象。 以下是实现的代码: ```cpp #include <iostream> // 基类 class Calculator { public: virtual double calculate(double a, double b) = 0; // 纯虚函数 }; // 加法计算器类 class AdditionCalculator : public Calculator { public: double calculate(double a, double b) override { return a + b; } }; // 减法计算器类 class SubtractionCalculator : public Calculator { public: double calculate(double a, double b) override { return a - b; } }; // 工厂函数 Calculator* createCalculator(char op) { switch (op) { case '+': return new AdditionCalculator(); case '-': return new SubtractionCalculator(); default: return nullptr; } } int main() { double a, b; char op; std::cout << "请输入两个操作数和一个操作符(如:3 + 2):"; std::cin >> a >> op >> b; Calculator* calculator = createCalculator(op); if (calculator) { double result = calculator->calculate(a, b); std::cout << "结果为:" << result << std::endl; delete calculator; } else { std::cout << "无效的操作符" << std::endl; } return 0; } ``` 这个程序首先接收用户输入的两个操作数和一个操作符,然后根据操作符创建相应的计算器对象,并调用其`calculate`方法进行计算。最后输出计算结果。 ######[AI写代码神器 | 515点数解答 | 2024-05-25 18:39:25]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)369
- C语言:实现输入实数和运算符计算表达式值,处理除数为0情况(字节豆包 | 209点数解答 | 2024-10-30 16:14:46)154
- 代码揭秘:栈助力中缀表达式转后缀并精准计算!(字节豆包 | 979点数解答 | 2024-10-12 20:35:40)228
- Python 实现 DES 加密算法编程实验:从原理到单步调试全解析(字节豆包 | 4096点数解答 | 2025-11-09 22:06:30)87
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)340
- iOS开发:手把手教你完整实现代理模式,含声明与实现步骤!(阿里通义 | 268点数解答 | 2023-11-08 00:39:55)270
- JavaScript 开发:用 Animation 实现自定义动画的简易教程 (阿里通义 | 333点数解答 | 2023-11-09 01:50:07)261
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)493
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)377
- Vue.js 与 Matter.js 碰撞:轻松实现物理模拟全攻略 (讯飞星火 | 522点数解答 | 2024-05-29 22:26:06)447
- JS实现移动端网页快捷键创建方式及注意事项(阿里通义 | 284点数解答 | 2024-06-05 19:02:59)281
- 车载系统 UML 类图设计:涵盖 Car、Engine、娱乐系统等的完整类定义与关系解析 (字节豆包 | 760点数解答 | 2024-08-15 22:51:04)325