定义抽象节点类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(){}
};