gpt4 book ai didi

c++ - 模板类中的 typedef 语句

转载 作者:行者123 更新时间:2023-11-30 01:03:36 27 4
gpt4 key购买 nike

我正在尝试将我的一个文件转换为模板,但 typedef 语句给我带来了一些麻烦。我得到的错误是:

error: declaration of ‘typedef typename LinkedList<value_type>::value_type Queue<value_type>::value_type’ shadows template parameter

我对在这种情况下如何使用 typedef 感到困惑,因为如果我“取消模板化”该文件,它会认为该文件中引用的其他类的 value_type 未定义。

我的代码:

#include <cstdlib>
#include "LinkedList.h"
#include "Node.h"
template <typename value_type>
class Queue
{
public:
typedef typename LinkedList<value_type>::value_type value_type;

Queue();
void enqueue(const value_type& obj);
value_type dequeue();

value_type& front();

bool is_empty() const;
int size() const;

private:
LinkedList<value_type> data;
int used;
};

最佳答案

您的问题是 value_type 已经是已知类型,它是您的模板参数。

你不能用任何其他东西重新定义它,尤其是不同的类型。

我有同样的“问题”,因为我希望另一个类像您一样检索用于模板的类型,在这种情况下,将模板参数重命名为其他名称。

关于c++ - 模板类中的 typedef 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52852548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com