基类如果是链表结构,子类中p=p->next出错,如何解决
基类如果是链表结构,子类中pp-next出错,怎么解决?在基类A中,A是个链表结构,因此*next是基类的数据类型C/
基类如果是链表结构,子类中p=p->next出错,怎么解决?
在基类A中,A是个链表结构,因此*next是基类的数据类型
C/C++ codeA * next
,B是A的继承类,
C/C++ codeclass B : public A
,. 所以也是个链表,但是因该如何对这个链表进行操作呢?比如声明一个实例
B *p; 可是执行
C/C++ codep=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;
}
应该就可以了。