C++ 多态案例 计算器类
#include<iostream>
#include<string>
using namespace std;
class AbstractCalculator {
public:
int m_Num1;
int m_Num2;
virtual int getResult() {
return 0;
}
};
class AddCalculator :public AbstractCalculator {
public:
int getResult() {
return m_Num1 + m_Num2;
}
};
class SubtractCalculator :public AbstractCalculator {
public:
int getResult() {
return m_Num1 - m_Num2;
}
};
class MultiplyCalculator :public AbstractCalculator {
public:
int getResult() {
return m_Num1 * m_Num2;
}
};
class DevideCalculator :public AbstractCalculator {
public:
int getResult() {
return m_Num1 / m_Num2;
}
};
void test02() {
AbstractCalculator* abc = new AddCalculator;
abc->m_Num1 = 10;
abc->m_Num2 = 10;
cout << "abc->m_Num1+ab->m_Num2=" << abc->getResult() << endl;
delete abc;
abc = new SubtractCalculator;
abc->m_Num1 = 10;
abc->m_Num2 = 10;
cout << "abc->m_Num1-ab->m_Num2=" << abc->getResult() << endl;
delete abc;
abc = new MultiplyCalculator;
abc->m_Num1 = 10;
abc->m_Num2 = 10;
cout << "abc->m_Num1*ab->m_Num2=" << abc->getResult() << endl;
delete abc;
abc = new DevideCalculator;
abc->m_Num1 = 10;
abc->m_Num2 = 10;
cout << "abc->m_Num1/ab->m_Num2=" << abc->getResult() << endl;
delete abc;
}
void test01() {
}
int main() {
test02();
system("pause");
return 0;
}