#include<iostream>
using namespace std;
class AbstractCalculate
{
public:
virtual int Cal()
{
return 0;
}
int m_A;
int m_B;
};
class AddCalculate :public AbstractCalculate
{
public:
int Cal()
{
return m_A + m_B;
}
};
class SubCalculate :public AbstractCalculate
{
int Cal()
{
return m_A - m_B;
}
};
class MulCalculate :public AbstractCalculate
{
int Cal()
{
return m_A * m_B;
}
};
void test01()
{
//加法
//父类用引用或指针指向子类对象
AddCalculate add;
AbstractCalculate* abc = new AddCalculate;
abc->m_A = 100;
abc->m_B = 100;
cout << abc->m_A << " + " << abc->m_B <<" = " << abc->Cal() << endl;
//指针未置空,还可以用
delete abc;
//减法
abc = new SubCalculate;
abc->m_A = 200;
abc->m_B = 200;
cout << abc->Cal() << endl;
}
int main()
{
test01();
}
---多态实现计算机---
最新推荐文章于 2024-06-20 20:35:16 发布