我的List类如何包含所有类型?

时间:2014-02-09 21:14:54

标签: c++ variables types

这个问题是我的数据结构类的分配的一部分我将在下面发布部分描述。

修改List类(链接列表作为后端)以支持泛型 它不仅可以包含整数,还可以包含其他类型,如浮点数和 字符。我提供了一个新的主要功能以及输出 从我的实现生成。 提示:您只需要添加一行并在五行中更改单个单词。所以 这不应该花很长时间。

我遇到的问题是,理解这个问题虽然对大多数人来说可能看起来很简单但我可能只是在想它。它声明我只需要添加一行,我假设该行将插入以下代码的部分:

class List
{
  private:
    struct Node
    {
        int data;
        Node *link;
    };

现在我不确定我将如何添加最后一行,但我想也许我可以这样做:

int,char,float data;

或者这不是一种有效的方法吗?我知道代码中其他地方的5个地方我需要改变一些东西,但问题对我来说非常混乱。谢谢。

2 个答案:

答案 0 :(得分:6)

template <typename T>
class List {
  private:
   struct Node {
    T data;
    Node *link;
   }
}

工作?

答案 1 :(得分:1)

联合在一个位置组合了不同的数据类型。

e.g。

union combined_data {
int i;
float f;
};

你可以说     combined_data.i = 42;

或     combined_data.f = 3.14;

另一种解决方案是使用模板。那就是:根据一个定义制作几个类。它们在(例如)类型中是不同的。

template<T>
class List
{
private:
    struct Node
    {
        T data;
        Node *link;
    };
};

您可以将其用作

List<int> intlist;

List<float> floatlist;