我正在尝试创建一个可在库中使用的类,但我不确定是否可以做到。这个类的想法是提供在列表中插入、搜索和删除项目的方法,但我的主要问题是,由于我不知道要放置在列表中的对象类型,我不知道如何处理它。我认为我可以放置一个void指针,然后使它指向一个结构体,但我无法使其工作。
假设我的类是这样的:
class ListManager
{
private:
void* FirstItem;//This would point to the first item of the list
void* LastItem;//This would point to the last item of the list
public:
void AddItemToList(void* Item);
void RemoveItemFromList(void* Item);
}
所以,我的想法是,从我的程序中,我可以定义一个类似于结构体的东西
struct Employee
{
*char Name;
int Id;
int PhoneNumber;
}
然后,使用这个类,可以添加/删除员工。因此,在这种情况下,void*指针应该指向类型为Employee的结构体。尽管如此,我希望我的类适用于任何类型的结构体。 我不知道我是否准确地解释了我想做的事情,我尝试了几种方法,但都失败了。
如果我没有正确解释,请看下面的代码,了解我希望这个类如何工作。
ListManager *Worker;
Worker=new(ListManager);
Employee *Item;
Item=new (Employee);
Item->Id=126;
Item->PhoneNumber=42154872;
Worker->AddItemToList(Item);
/*At this point, FirstItem and LastItem should point to the Item i just created*/
有人能指点我如何使一个类与结构一起工作,而不知道结构的类型吗?
提前谢谢。
T
创建一个模板类,而不是使用void *
,您可以使用正确的类型(即T
)。 - 463035818_is_not_a_numberstd::vector
或std::list
? - Gábor Angyal