程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> C++多態特性例

C++多態特性例

編輯:更多關於編程
    #include<iostream>
    #include<string>
    using namespace std;
    
    class fruit
    {
    public:
    		virtual void how_to_eat()const=0;
    		virtual void show_priority()const=0;
            fruit(string a,string b,double c);
    		string name;
    		string color;
    		double price;
    };
    
    class apple:public fruit
    {
    public:
    		apple();
    		void how_to_eat()const;
    		void show_priority()const;
    };
    
    class bnana:public fruit
    {
    public:
    		bnana();
    		void show_priority()const;
    		void how_to_eat()const;
    };
    
    fruit::fruit(string a,string b,double c):name(a),color(b),price(c){}
    apple::apple():fruit("apple","red",1.23){}
    bnana::bnana():fruit("bnana","yellow",0.34){}
    
    void apple::how_to_eat()const
    {
    	cout<<"直接吃"<<endl;
    }
    void apple::show_priority()const
    {
    	cout<<name<<endl<<color<<endl<<price<<endl;
    }
    
    void bnana::how_to_eat()const
    {
    	cout<<"去了皮再吃"<<endl;
    }
    void bnana::show_priority()const
    {
    	cout<<name<<endl<<color<<endl<<price<<endl;
    }
    
    
    int main()
    {
    	fruit *p[2]={NULL};
    	p[0]=new apple;
    	p[1]=new bnana;
    	for(int i=0;i<2;i++)
    	{
    		p[i]->show_priority();p[i]->how_to_eat();
    	}
    	return 0;
    }
    
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved