如何允许您的数据结构接受任何类的对象 - C++

Doi*_*ois 3 c++ data-structures

我怎么做?就像你在Java中所知道的那样,你可以使用一个ArrayList,只要你将它转换为检索对象时的任何对象,它就会占用任何对象.

更好的是,您可以通过执行指定ArrayList将存储的对象类...

new ArrayList()<whateverObject>

我用C++实现了一个链表数据结构,我想知道如何让它做到这一点......

目前,我只是在使用......

typedef whateverObject ItemType

在我的链接列表的头文件的开头,然后在整个链表的实现中操作"ItemType".因此,每次我想要更改类型,例如,而不是使用列表存储字符串,我想存储一个int,我将不得不更改我的链表的标题中的typedef但我希望能够简单地使用它对于任何物体......

怎么样?!

谢谢.

Ben*_*oît 6

模板是您问题的答案.

定义链接列表,如下所示:

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
};
Run Code Online (Sandbox Code Playgroud)

那么使用的类型ArrayList<WhateverObject>.


Tho*_*ini 5

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

如果您有时间,如果您有时间,我建议您阅读整个常见问题解答,这真的是一个很好的资源!