zoukankan      html  css  js  c++  java
  • C++类、继承、多态、虚函数

    一个比较好的虚函数例子

    /****************************/
    /*  作者:骆天  */
    /*  时间: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;
    }
  • 相关阅读:
    八数码(BFS)
    食物链(并查集)
    最大异或对(Trie)
    解决espeak编译的一些问题
    AcWing 3779. 相等的和
    AcWing 3775. 数组补全(环图)
    AcWing 3728. 城市通电(最小生成树)
    AcWing 3727. 乘方相乘(进位制)
    tarjan
    LC刷题简要记录
  • 原文地址:https://www.cnblogs.com/tinaluo/p/6290989.html
Copyright © 2011-2022 走看看