c++ 派生与继承

2025-02-24 03:36:14
推荐回答(2个)
回答1:

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

}

回答2:

#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"< gets(m_name);
}

void character::getname()
{
cout<<"the name is:"<}

void main()
{
character A;

A.setname();
A.getname();

cout<<"................................."< cout<<"please enter no. to select weapon "< cout<<"1. tank"< cout<<"2. fs"< cout<<"3. zl"< cout<<"other..."< 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();
}

}
}