#include<iostream>
#include<Windows.h>
#include<stdlib.h>
using namespace std;
class base//抽象基类的定义
{
public:
virtual void show() = 0;//通过纯虚函数定义公共接口
};
//链表结点定义
class linknode
{
public:
base *p; //数据域
linknode *pnext; //指针域
};
//派生类
class A :public base
{
public:
void show()
{
cout << "class A\n";
}
};
class B :public base
{
public:
void show()
{
cout << "class B\n";
}
};
class C :public base
{
public:
void show()
{
cout << "class C\n";
}
};
class D:public base
{
public:
void show()
{
cout << "class D\n";
}
};
void showall(linknode *phead)
{
while (phead != NULL)
{
phead->p->show();
phead = phead->pnext;
}
}
void add(linknode *phead, base *p)
{
linknode *ptemp = phead;
if (ptemp == NULL)
{
ptemp->p = p;
ptemp->pnext = NULL;
}
else
{
while (ptemp->pnext != NULL)
{
ptemp = ptemp->pnext;
}
linknode *padd = new linknode; //新建一个节点,然后插入到链表的尾部
C++学习总结——通过抽象类和派生创建异质链表
最新推荐文章于 2024-09-07 10:55:15 发布
