英文C++ 题目 继承多态题目怎么做

时间:2021-12-01 19:27:14
大致翻译一下:
simulates a team of creatures fighting against a dragon. (模拟团队创造一个龙决斗的creature)
使用 You will be using classes(类), inheritance, (继承) and polymorphism. (多态) 
Create a new Creature class. 创造一个新的 龙类
Dragon Class that inherits Creature.. 龙类继承新的类
Create a new Human class that inherits Creature.  
Case/continue 情形 继续

题目没大明白,求大神写个代码

大致框架也行。

谢谢了 

2 个解决方案

#1


大致这样

class Creature;
class Dragon : public Creature;
class Human : public Creature;

#2


仅供参考:

#include <iostream>
using namespace std;

class Creature
{
public:
virtual void Fight()=0;
};

class Dragon : public Creature
{
public:
void Fight()
{
cout<<"龙要吃人"<<endl;
}
};

class Human : public Creature
{
public:
void Fight()
{
cout<<"人要杀龙"<<endl;
}
};

int main()
{
Creature* creature[10]={0};
for(int i=0;i<10;++i)
{
if(i%2==0)
{
creature[i]=new Dragon();
}
else
{
creature[i]=new Human();
}
}
for(int i=0;i<10;++i)
{
creature[i]->Fight();
delete creature[i];
}
return 0;
}

英文C++ 题目 继承多态题目怎么做

#1


大致这样

class Creature;
class Dragon : public Creature;
class Human : public Creature;

#2


仅供参考:

#include <iostream>
using namespace std;

class Creature
{
public:
virtual void Fight()=0;
};

class Dragon : public Creature
{
public:
void Fight()
{
cout<<"龙要吃人"<<endl;
}
};

class Human : public Creature
{
public:
void Fight()
{
cout<<"人要杀龙"<<endl;
}
};

int main()
{
Creature* creature[10]={0};
for(int i=0;i<10;++i)
{
if(i%2==0)
{
creature[i]=new Dragon();
}
else
{
creature[i]=new Human();
}
}
for(int i=0;i<10;++i)
{
creature[i]->Fight();
delete creature[i];
}
return 0;
}

英文C++ 题目 继承多态题目怎么做