一个例子告诉你什么是封装,继承和多态(C++ 代码实例) (二)

上一篇讲了 封装和继承,接下来讲最后一个特性——多态;

本人感觉面试时,什么时多态这个问题被问的次数最多,而且也是比较难理解的,但是在大的项目开发中,多态是很频繁被用的,

因此理解多态是很必要的。

其实多态和继承是分不开的,多态就是多个类可以执行相同的方法,但是具体实现是不同的;

如果在Operation 类添加一个 double GetResult() 虚函数,在子类中重写该虚函数,这样就是实现了多态;

//Operation.h

class Operation
{
public:
    Operation();
    virtual ~Operation();
    virtual void SetFirstNum(double param);
    virtual void SetSecondNum(double param);
    virtual double GetResult();
protected:
    double m_firstNum;
    double m_SecondNum;
};

//Operation.cpp

#include "Operation.h"


Operation::Operation():
    m_firstNum(0), m_SecondNum(0)
{
}

Operation::~Operation()
{
}

void Operation::SetFirstNum(double param)
{
    m_firstNum = param;
}

void Operation::SetSecondNum(double param)
{
    m_SecondNum = param;
}

double Operation::GetResult()
{
    return 0.0;
}
这样修改有什么好处呢?答,这些子类可以用相同的父类指针表示,可存在一个容器内

 

 

你可能感兴趣的:(一个例子告诉你什么是封装,继承和多态(C++ 代码实例) (二))