一个比较好的虚函数例子
/****************************/
/* 作者:骆天 */
/* 时间:2018/1/26 */
/* 代码:多态的理解 */
/****************************/
#include <iostream>
#include <vector>
using namespace std;
class Fruit //抽象基类;
{
public:
virtual double GetPrice()=0; //抽象方法
};
class Apple:public Fruit //苹果类
{
public:
virtual double GetPrice()
{
return 3.0;
}
};
class Pear:public Fruit //梨类
{
public:
virtual double GetPrice()
{
return 4.0;
}
};
class ShopCart //购物车,可以添加苹果,梨等各种水果
{
private:
vector<Fruit*> pFruit; //vector存放指针
public:
void addFruit(Fruit *f) //添加物品
{
pFruit.push_back(f);
}
double calculateTotalPrice() //计算总价
{
int sum=0;
for(int i=0;i<pFruit.size();i++)
{
sum+=pFruit[i]->GetPrice();
}
return sum;
}
};
int main()
{
Fruit *apple=new Apple(); //购物苹果
Fruit *pear=new Pear(); //购买梨
ShopCart cart;
cart.addFruit(apple); //苹果加入购物车
cart.addFruit(pear); //梨加入购物车
cout<<cart.calculateTotalPrice()<<endl; //计算总价
return 0;
}