#include
#include
using namespace std;
class Name
{
public:
Name(string na):name(na){}
virtual void display() const;//定义虚函数用来显示动态多态性
protected:
string name;
};
class A:public Name
{
public:
A(string na,string a="剑"):Name(na),aa(a){}
virtual void display() const;
protected:
string aa;
};
class B:public Name
{
public:
B(string na,string b="仗"):Name(na),bb(b){}
virtual void display() const;
protected:
string bb;
};
class C:public Name
{
public:
C(string na,string c="加血术"):Name(na),cc(c){}
virtual void display() const;
protected:
string cc;
};;
void Name::display() const
{
cout< } void A::display() const { cout< } void B::display() const { cout< } void C::display() const { cout< } int main() { string name; int n; cout<<"请输入角色姓名:"< cin>>name; A a(name); B b(name); C c(name); Name *p=NULL;//定义基类指针用来指向各派生类 while(1) { cout<<"请选择职业:"< cout<<"1.剑士"< cout<<"2.和尚"< cout<<"3.医生"< cout<<"4.退出程序"< cin>>n; switch(n) { case 1:p=&a;p->display();break; case 2:p=&b;p->display();break; case 3:p=&c;p->display();break; case 4:exit(1);break; } } return 0; }
#include
using namespace std;
class sword
{
public:
sword(){}
~sword(){}
public:
void use_sword()
{
cout<<"use the sword."<
};
class staves
{
public:
staves(){}
~staves(){}
public:
void use_staves()
{
cout<<"use the staves."<
};
class blood
{
public:
blood(){}
~blood(){}
public:
void use_blood()
{
cout<<"use the blood."<
};
class character :public sword, public staves, public blood
{
public:
character(){}
~character(){}
private:
char m_name[32];
public:
void setname();
void getname();
void use_skill()
{
cout<<"use the free hand."<
};
void character::setname()
{
cout<<"please enter name"<
}
void character::getname()
{
cout<<"the name is:"<
void main()
{
character A;
A.setname();
A.getname();
cout<<"................................."<
while(1)
{
int ch;
cin>>ch;
if (ch == 1)
{
A.use_sword();
}
else if (ch == 2)
{
A.use_staves();
}
else if (ch == 3)
{
A.use_blood();
}
else
{
A.use_skill();
}
}
}