这道题我写的比较简单,想要复杂功能的自己写一下吧
Person.cpp
#include <iostream> #include <cstdlib> #include <string> using namespace std; class Person{ private: string name; string xing; public: Person(string n="陈",string x="某某"):name(n),xing(x){}; virtual void show()=0{ cout<<"姓名:"<<xing<<" "<<name<<endl; };//纯虚函数 }; class Gunslinger:virtual public Person { private: int Gunnumber; public: Gunslinger(string n="枪王",string x="枪",int g=5):Person(n,x),Gunnumber(g){} double Draw() { return Gunnumber/5.0;//默认拔枪时间为Gunnumber/5 } virtual void show() { Person::show(); cout<<"把枪时间:"<<Draw(); } }; class PokerPlayer:virtual public Person{ private: int val; public: PokerPlayer(string n="赌神",string x="扑克牌",int v=100):Person(n,x),val(v){ set(); } void set() { val=rand()%52; } double Draw() { return val; } virtual void show() { Person::show(); cout<<"牌点:"<<(int)Draw(); } }; class BadDude:public Gunslinger,public PokerPlayer{ public: double Gdraw() { return Gunslinger::Draw(); } double Cdraw() { return PokerPlayer::Draw(); } void show() { Person::show(); cout<<"时间:"<<Gunslinger::Draw()<<endl; cout<<"牌点:"<<PokerPlayer::Draw()<<endl; } };
main144.cpp
#include <iostream> #include "Person.cpp" #include <string> using namespace std; const int SIZE=5; void main144() { Person *lolas[SIZE]; int ct; for(ct=0;ct<SIZE;ct++) { char choice; cout<<"Enter the employee category:"<<endl <<"g:Gunslinger p:PokerPlayer"<<endl <<"b:BadDude q:quit"<<endl; cin>>choice; while(strchr("gpbq",choice)==NULL)//p564关于strchr有解释 { cout<<"Please enter a w,s,t or q:"; cin>>choice; } if(choice=='q') break; switch(choice) { //这里我为了方便,都采用默认初始化了 case 'p':lolas[ct]=new PokerPlayer();break; case 'g':lolas[ct]=new Gunslinger();break; case 'b':lolas[ct]=new BadDude();break; } cin.get(); } cout<<"Here is your staff:"<<endl; int i; for(i=0;i<ct;i++) { lolas[i]->show(); cout<<endl; } cout<<endl<<endl; cin.get(); };
——————————————————————————————————————————————————
//写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。
转载请注明出处:https://www.royalchen.com/
author:royalchen
Email:royalchen@royalchen.com
———————————————————————————————————————————————————