``# 类多态的运用(计算器类)
//每日心得:独上高楼,望尽天涯路
//日期:12.23
//学习内容:计算机类
重点:
多态的好处
1、组织结构清晰
2、可读性强
3、对于前期和后期扩展以及维护性高
#include <iostream>
using namespace std;
//抽象类
class AbstractCalculator
{
public:
virtual int getResult()
{
return 0;
}
int m_Num1 = 0, m_Num2 = 0;
};
class AddCalculator : public AbstractCalculator
{
public:
virtual int getResult()
{
return m_Num1 + m_Num2;
}
};
class ReduceCalculator : public AbstractCalculator
{
public:
int getResult()
{
return m_Num1 - m_Num2;
}
};
void test1()
{
//多态使用条件
//基类的 指针 或者 引用 指向 派生类对象
//加法运算
AbstractCalculator* a = new AddCalculator; //基类指针 指向 派生类
a->m_Num1 = 10;
a->m_Num2 = 20;
//基类指针 使用 派生类函数
cout << a->m_Num1 << " + " << a->m_Num2 << " = " << a->getResult()<<endl;
//销毁
delete a;
a = new ReduceCalculator;
a->m_Num1 = 100;
a->m_Num2 = 200;
cout << a->m_Num1 << " - " << a->m_Num2 << " = " << a->getResult() << endl;
delete a;
}
int main()
{
test1();
//如果想扩展新的功能,不需修改源代码
//在真实开发中 提倡 开闭原则
//开闭原则:对扩展进行开放,对修改进行关闭
}