基类如果是链表结构,子类中p=p->next出错,如何解决

基类如果是链表结构,子类中p=p->next出错,怎么解决?
在基类A中,A是个链表结构,因此*next是基类的数据类型
C/C++ code
A * next
,B是A的继承类,
C/C++ code
class B : public A
,. 所以也是个链表,但是因该如何对这个链表进行操作呢?比如声明一个实例
B *p; 可是执行
C/C++ code
p=p->next
是不能通过的,因为
cannot convert from 'class A *' to 'class B *'。 

应该怎么写可以避免这个问题?

------解决方案--------------------
主要是因为p的数据类型是A. 

解决方案:

你把A,B创建到一个链表中,而不是让A,B的类型是链表。这样我估计尼大部分想通过链表实现的功能都不受影响。

例如:


class A{};
class B{};
class linklist
{
A class_a;
B class_b;
linklist *next;
}

应该就可以了。