【C++之多态】多态实现计算器功能

简介: 【C++之多态】多态实现计算器功能

题目分别收录于 牛客网在线编程-语法篇-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;
}
相关文章
|
26天前
|
C++
9. C++虚函数与多态
9. C++虚函数与多态
26 0
|
1月前
|
算法 Java 编译器
【C++ 关键字 virtual 】C++ virtual 关键字(将成员函数声明为虚函数实现多态
【C++ 关键字 virtual 】C++ virtual 关键字(将成员函数声明为虚函数实现多态
25 0
|
1天前
|
编译器 C++
c++的学习之路:23、多态(2)
c++的学习之路:23、多态(2)
12 0
|
26天前
|
编译器 C++
C++之多态
C++之多态
|
28天前
|
存储 程序员 编译器
【C++ 模板类与虚函数】解析C++中的多态与泛型
【C++ 模板类与虚函数】解析C++中的多态与泛型
46 0
|
29天前
|
设计模式 存储 安全
【C++ 基本概念】C++编程三剑客:模板、多态与泛型编程的交织与差异
【C++ 基本概念】C++编程三剑客:模板、多态与泛型编程的交织与差异
104 0
|
29天前
|
存储 安全 算法
【C++ 17 包裹类 泛型容器 std::any】深入理解与应用C++ std::any:从泛型编程到多态设计
【C++ 17 包裹类 泛型容器 std::any】深入理解与应用C++ std::any:从泛型编程到多态设计
48 1
|
1月前
|
存储 算法 编译器
【C++ 模板应用】模板哪些行为属于多态哪些行为属于泛型编程?
【C++ 模板应用】模板哪些行为属于多态哪些行为属于泛型编程?
25 0
|
1月前
|
存储 安全 编译器
【C++ 多态 】深入理解C++的运行时类型信息(RTTI):dynamic_cast和typeid的应用与原理
【C++ 多态 】深入理解C++的运行时类型信息(RTTI):dynamic_cast和typeid的应用与原理
51 1
|
1月前
|
存储 编解码 开发框架
【C++ 多态 】了解 C++ 中的类型擦除和虚拟函数调用
【C++ 多态 】了解 C++ 中的类型擦除和虚拟函数调用
42 1

热门文章

最新文章