基类如果是链表结构,子类中p=p->next出错,如何解决
基类如果是链表结构,子类中p=p->next出错,怎么解决?
在基类A中,A是个链表结构,因此*next是基类的数据类型
B *p; 可是执行
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;
}
应该就可以了。
在基类A中,A是个链表结构,因此*next是基类的数据类型
- C/C++ code
A * next
- 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;
}
应该就可以了。