题目分别收录于 牛客网在线编程-语法篇-C++入门-04面向对象-多态-CPP46 多态实现计算器功能
题目
描述:
完善下面的代码,使程序能够正常运行。要求 BaseCalculator 类中提供 getResult() 函数(无需实现),在 AddCalculator 类中实现两个成员相加(m_A + m_B),在 SubCalculator 类中实现两个成员相减(m_A - m_B)
输入描述:
实现 10 和 20 的相加,20 与 10 的相减
输出描述:
30
10
代码
本题属于简单题,将会用到抽象基类和纯虚函数,相关知识点可以参考我以前的博客:【C++之纯虚函数与抽象类1】圆形、矩形、三角形的面积
#include <iostream> using namespace std; // 抽象基类 class BaseCalculator { public: int m_A, m_B; virtual int getResult() = 0; // 纯虚函数 }; class AddCalculator: public BaseCalculator { public: virtual int getResult(){return m_A + m_B;} }; class SubCalculator: public BaseCalculator { public: virtual int getResult(){return m_A - m_B;} }; int main() { BaseCalculator* Cal = new AddCalculator; Cal -> m_A = 10; Cal -> m_B = 20; cout << Cal -> getResult() << endl; delete Cal; Cal = new SubCalculator; Cal -> m_A = 20; Cal -> m_B = 10; cout << Cal -> getResult() <<endl; delete Cal; return 0; }