【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;
}
相关文章
|
29天前
|
存储 C++ UED
【实战指南】4步实现C++插件化编程,轻松实现功能定制与扩展
本文介绍了如何通过四步实现C++插件化编程,实现功能定制与扩展。主要内容包括引言、概述、需求分析、设计方案、详细设计、验证和总结。通过动态加载功能模块,实现软件的高度灵活性和可扩展性,支持快速定制和市场变化响应。具体步骤涉及配置文件构建、模块编译、动态库入口实现和主程序加载。验证部分展示了模块加载成功的日志和配置信息。总结中强调了插件化编程的优势及其在多个方面的应用。
213 62
|
1月前
|
编译器 C++
C++入门12——详解多态1
C++入门12——详解多态1
36 2
C++入门12——详解多态1
|
1月前
|
C++
C++入门13——详解多态2
C++入门13——详解多态2
79 1
|
3月前
|
存储 编译器 C++
|
2月前
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
174 0
|
4月前
|
存储 编译器 C++
【C++】深度解剖多态(下)
【C++】深度解剖多态(下)
53 1
【C++】深度解剖多态(下)
|
3月前
|
存储 编译器 C++
C++多态实现的原理:深入探索与实战应用
【8月更文挑战第21天】在C++的浩瀚宇宙中,多态性(Polymorphism)无疑是一颗璀璨的星辰,它赋予了程序高度的灵活性和可扩展性。多态允许我们通过基类指针或引用来调用派生类的成员函数,而具体调用哪个函数则取决于指针或引用所指向的对象的实际类型。本文将深入探讨C++多态实现的原理,并结合工作学习中的实际案例,分享其技术干货。
71 0
|
4月前
|
机器学习/深度学习 算法 C++
C++多态崩溃问题之为什么在计算梯度下降时需要除以批次大小(batch size)
C++多态崩溃问题之为什么在计算梯度下降时需要除以批次大小(batch size)
|
4月前
|
Java 编译器 C++
【C++】深度解剖多态(上)
【C++】深度解剖多态(上)
52 2
|
4月前
|
机器学习/深度学习 PyTorch 算法框架/工具
C++多态崩溃问题之在PyTorch中,如何定义一个简单的线性回归模型
C++多态崩溃问题之在PyTorch中,如何定义一个简单的线性回归模型