#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; }