如何让你的数据结构能够接收任何类的对象

我怎么做? 就像你在Java中所知道的那样,你可以使用一个ArrayList,并且只要你把它转换成任何对象就可以了。

更好的是,你可以指定ArrayList将要存储的对象类别......

新的ArrayList()<whateverObject>

我已经在C ++中实现了一个链表数据结构,我想知道如何允许它执行此操作。

目前,我只是使用...

typedef whateverObject ItemType

在我的链表的头文件开始处,然后在整个链表的实现中操作“ItemType”。 所以每次我想改变类型时,例如,而不是使用列表来存储字符串,我想存储一个int,我将不得不改变我的链表中的typedef,但我希望能够简单地使用它对于任何物体,所以...

怎么样?!

谢谢。


模板是你的问题的答案。

定义你的链表如下:

template<typename ItemType>
class ArrayList
{
  // What's inside your class definition does not need to be changed
  // Include your method definitions here and you'll be fine
};

然后使用的类型是ArrayList<WhateverObject>


使用模板。 这是一个很好的解释,所以我会给你一个链接,它的解释要比我在这里能做得更好:C ++ FAQ - 模板。

当你在这里时,如果你有时间,我建议你阅读整个FAQ,这真是一个很好的资源!


如果我已经很好地理解你的问题,那么模板就是你想要的。

看看这里:

http://www.cplusplus.com/doc/tutorial/templates/

链接地址: http://www.djcxy.com/p/87897.html

上一篇: How to allow your data structure to take in objects of any class

下一篇: SERVICE layer in jpaRepository