在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;
}
运行结果:
多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。使用多态提高了代码的维护性(由继承保证),也提高了代码的扩展性(由多态保证)。