异质链表:在实际中,很多场景都要用链表管理不同类型的对象/结点,这样的链表叫异质链表。
链表内指定数据域是:抽象类的指针,但内部存放不同子类的对象。
异质链表的简单介绍:
链表内Node
Node类头文件
#ifndef __NODE_H
#define __NODE_H
#include <iostream>
#include "shape.h"
using namespace std;
class Node
{
public:
Node(Shape* p);
Node(const Node &n);
virtual ~Node();
void setShape(Shape *p);
Shape *getShape(void) const;
void setNext(Node *n);
Node *getNext(void) const;
private:
Shape *m_shape;
Node *next;
};
#endif // __NODE_H
/Node类简单实现//
#include "node.h"
Node::Node(Shape* p)
{
m_shape = p;
next = NULL;
}
Node::Node(const Node &n)
{
setShape(n.getShape());
setNext(n.getNext());
}
Node::~Node()
{
if(next !