gpt4 book ai didi

c++ - 模板作为参数类型

转载 作者:太空狗 更新时间:2023-10-29 21:22:46 24 4
gpt4 key购买 nike

大家好,所以我决定利用 UDT 库的泛化来简化进一步的项目,但是尽管在互联网上搜索了我的难题的可能答案,但我在声明和特定语法方面遇到了障碍。

首先,我有以下两个 shell 类,都是模板:

//Nodes.h
#pragma once
#include "LinkedList.h"

template <class T>
class LLNode
{
LLNode(T _data, LinkedList* parent);

private:
T data;
LLNode* next;
};

//LinkedList.h
#pragma once
#include "Nodes.h"

template <class T>
class LinkedList
{
LLNode* first;
LLNode* last;
int size;

LinkedList(T data);

void insert(T data, int index);
void append(T data);

void insert(LLNode* node, int index);
void append(LLNode* node);
};

现在,问题是无论我做什么,我似乎都无法解决以下错误:“错误 C2601:语法错误:标识符‘LinkedList’”关于 LLNode 模板的构造函数外壳。

我的主要问题是,如果可能的话,您如何使用模板类作为参数类型,以及我忽略了其余部分的哪些语法错误?

最佳答案

首先,LLNode是一个类模板,所以需要

 LLNode<T>* first;

void insert(LLNode<T>* node, int index);

等等。

其次,Nodes.hLinkedList.h 之间存在循环包含依赖关系。您将不得不重新设计您的代码,使类不相互依赖,或使用前向声明。您可能需要考虑放置包含的位置,这对于实现成员函数是必需的。我建议重新设计。

关于c++ - 模板作为参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19924725/

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