我的课程
class Product
{
...
};
class Perishable : public : Product
{
public:
int getday();
};
我想要同时包含易腐和产品对象的集合,并希望通过链表来实现。
通常对于链接列表,我们有类似
的内容class linkedlist
{
struct List
{
int item;
ListNode* next;
}
//.... all the functions
};
但我在这里有一个问题,因为我想要存储在item中的数据不是int而是Product或Perishable,我如何将它作为链表实现?
答案 0 :(得分:1)
您可以将Product*
作为项目存储在链接列表中。您应该将virtual
方法添加到基类Product
,这将在运行时调度到适当的方法,具体取决于此指针指向的实际对象类型。
答案 1 :(得分:1)
您需要模板。 C ++中的模板支持泛型编程。在您的类LinkedList之前声明模板后,您可以将T项替换为T项,其中T是占位符,并将替换适当的数据类型(自定义或原始),具体取决于您实例化对象的方式。