gpt4 book ai didi

c++ - 如何在类中全部内嵌数据结构模板(同一 .h 文件)

转载 作者:行者123 更新时间:2023-12-02 05:32:54 25 4
gpt4 key购买 nike

我被分配将我的链表类转换为模板,但我遇到了一些困惑。我需要将其作为单个 .h 提交文件。

当我尝试构建时,每次提及 LLnode 时都会出现错误, fwdPtr ,和theData 。这是结构的每个元素,所以我在那里做了一些非常错误的事情。另外,struct定义本身标有 syntax error

template <class V>
class LL
{
private:
LLnode * header;
struct <V> LLnode;
{
LLnode * fwdPtr; // has a pointer member
V theData; // the data within the node
};

public:
LL()
{
header = nullptr;
}
void push_front(string data)
{
LLnode * new_node;
new_node = new LLnode;
new_node -> theData = data;

if (header == nullptr)
{
header = new_node;
new_node -> fwdPtr = nullptr;
}
else
{
LLnode * temp;
temp = header;
header = new_node;
new_node -> fwdPtr = temp;
}

return;
}
.... more functions below ....

main() ,将测试该函数,将使用 <string> 实例化一个新的链表。强制转换为类型。这就是为什么我移动了 struct LLnode里面private class LL成员(member)专区。这也是我使用V的原因整个结构。因为该转换需要深入到结构本身,所以当我为节点动态分配内存时,它会知道接受 string数据

我知道我需要更改函数定义以包含 V并使用V整个过程中都有一些变量。但我不明白在哪里以及为什么。我对模板类如何与指针和程序员定义的结构相关联感到困惑。我理解教科书中模板类/函数的简单示例,但我在这里迷失了。

预先感谢您的帮助!

编辑:这是我收到的错误消息(根据要求)

../LL_template_class.h:23:3: error: unknown type name 'LLnode'
LLnode * header;
^
../LL_template_class.h:24:3: error: declaration of anonymous struct must be a definition
struct <V> LLnode;
^
../LL_template_class.h:24:3: warning: declaration does not declare anything [-Wmissing-declarations]
../LL_template_class.h:25:3: error: expected member name or ';' after declaration specifiers
{
^
../LL_template_class.h:37:4: error: unknown type name 'LLnode'
LLnode * new_node;
^
../LL_template_class.h:38:19: error: unknown type name 'LLnode'
new_node = new LLnode;
^
../LL_template_class.h:48:5: error: unknown type name 'LLnode'
LLnode * temp;

但就像我说的,我得到 can not resolve所有提及我的 struc LLnode 的错误元素也是如此

最佳答案

两个问题:

<小时/>

首先,您将结束 struct LLnode 的声明太早了(你有一个额外的分号)。你有

struct LLnode;
{
...
};

你应该有

struct LLnode
{
...
};
<小时/>

其次,您有声明 struct <V> LLnode ,当你应该有声明 struct LLnode 时。拥有<V>没有语法意义。

<小时/>

此外,我不确定这是否有必要,但您可能需要移动 header 的声明在您的 LLnode 声明下方,自 header定义为 LLnode .

关于c++ - 如何在类中全部内嵌数据结构模板(同一 .h 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58142037/

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