C ++中的通用数据列表

时间:2014-09-06 19:02:19

标签: c++ list pointers generics

我使用C ++与Lists合作,我有点怀疑。每个Cell都有一个指向下一个单元格和数据的指针。现在每个单元格都使用Data1类。

class Data1
{
    public:
        int item1;
};

class Data2
{
    public:
        int item2;
};

class List
{

    /* Each cell of list */
    typedef class Cell
    {
        public:
            class Data1 data;
            class Cell *next;

    }Cell;
    .
    .
    .
}

如何将Data1或Data2用于不同的应用程序?

更好的解释是,如果Data2在另一个源代码上,而Cell指向Data2而不是Data1。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用模板:

template<class Data>
class List
{
    struct Cell { Data data; Cell* next; };
};

在实例化时,您可以传递要用作data类型的目标类:

List<Data1> list1;
List<Data2> list2;

此外,在C ++中定义类的实例时,您不需要前缀classstruct