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