Problem D: 构建异质节点的链表

Problem D: 构建异质节点的链表

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 64  Solved: 41
[Submit][Status][Web Board][Creator:]

Description

定义抽象节点类weapon,用来描述各类武器;分别派生出刀类knife、剑类sword、棍类stick

定义链表类list,用来存放各类武器;

在main函数当中创建不同类别的武器,并依次插入链表当中,并打印最后的结果。

提示:链表节点的地址域是指向基类weapon类的指针,可以指向weapon类子类的对象,并通过虚函数调用子类当中改造过的函数。

weapon类的参考定义如下

class weapon
{
protected:
string name;
int damage;
weapon *link;
virtual void print() = 0;
friend class list;
public:
weapon(string n , int d):name(n) , damage(d)
{
link = NULL;
}
virtual ~weapon(){}
};

Input

依次输入若干把武器的类别、名字和伤害值,根据输入的武器类别创建不同的对象节点并插入到链表当中,直到输入的武器名为END则结束。

Output

输出链表当中所有存放的武器信息,具体格式见样例。


Sample Input

knife tulong 5000
sword yitian 6000
stick dagou 7000
END

Sample Output

knife name:tulong damage:5000
sword name:yitian damage:6000
stick name:dagou damage:7000
[Submit][Status]