#includeusing namespace std; //实现计算器抽象类 class AbstractCalculator { public: // virtual int getResult()//虚函数 // { // return 0; // } virtual int getResult()=0;//纯虚函数 int m_Num1; int m_Num2; }; //加法计算器类 class AddCalculator : public AbstractCalculator { public: int getResult() { return m_Num1 + m_Num2; } }; //减法计算器类 class SubCalculator : public AbstractCalculator { public: int getResult() { return m_Num1 - m_Num2; } }; //乘法计算器类 class MulCalculator : public AbstractCalculator { public: int getResult() { return m_Num1 * m_Num2; } }; void test() { //父类的指针或引用指向子类的对象 AbstractCalculator *abc = new AddCalculator; //堆区, abc->m_Num1 = 60; abc->m_Num2 = 20; cout << abc->m_Num1 << "+" << abc->m_Num2 << "=" << abc->getResult() << endl; //销毁 delete abc; abc = new SubCalculator; abc->m_Num1 = 60; abc->m_Num2 = 20; cout << abc->m_Num1 << "-" << abc->m_Num2 << "=" << abc->getResult() << endl; delete abc; abc = new MulCalculator; abc->m_Num1 = 60; abc->m_Num2 = 20; cout << abc->m_Num1 << "*" << abc->m_Num2 << "=" << abc->getResult() << endl; delete abc; } int main() { test(); return 0; }



