在C++中多态是非常重要的一个概念,多态编程虽然会使代码量变多,但是他的优点也是非常的明显。
#include <iostream> using namespace std; class Calculator { public: int m_Num1; int m_Num2; virtual int getResult() = 0; }; class Add : public Calculator { public: int getResult() { return this->m_Num1 + this->m_Num2; } }; class Sub : public Calculator { public: int getResult() { return this->m_Num1 - this->m_Num2; } }; class Mul : public Calculator { public: int getResult() { return this->m_Num1 * this->m_Num2; } }; class Div : public Calculator { public: int getResult() { return this->m_Num1 / this->m_Num2; } }; int main(int argc, char **argv) { Calculator *MyCal = new Add; MyCal->m_Num1 = 10; MyCal->m_Num2 = 12; cout << MyCal->getResult() << endl; MyCal = new Sub; MyCal->m_Num1 = 99; MyCal->m_Num2 = 78; cout << MyCal->getResult() << endl; return 0; }
运行结果:
多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。使用多态提高了代码的维护性(由继承保证),也提高了代码的扩展性(由多态保证)。