一个比较好的虚函数例子
/****************************/ /* 作者:骆天 */ /* 时间: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; }