gpt4 book ai didi

c++ - ISO C++ 禁止声明没有类型的 "something"

转载 作者:太空狗 更新时间:2023-10-29 20:04:36 26 4
gpt4 key购买 nike

我是 C++ 模板编程的新手,所以我决定从编写模板列表开始。我在 Node<T> *head; 线上收到此错误和 Node<T> *tail;

这是我的头文件(因为错误只出现在那里):

#ifndef LIST_H
#define LIST_H

using namespace std;

template <class T> class List {

public:
List();
T get(const int n);
void add(const T element);
private:
Node<T> *head;
Node<T> *tail;
int size;
};

template <class T> class Node {
public :
Node();
T get();
void setNext(const Node<T> *next);
Node<T> getNext();
void setValue(const T value);
private:
T value;
Node *next;
};

#endif // LIST_H

哦,我尝试添加 typename之前Node<T> , 但它给了我 expected nested-name-specifier before 'Node' .

最佳答案

将您的Node 定义放在List 前面或前向声明Node

template <class T> class Node;  // forward declaration for Node

template <class T> class List {
public:
List();
T get(const int n);
void add(const T element);
....
};


template <class T> class Node {
public :
....
};

....

关于c++ - ISO C++ 禁止声明没有类型的 "something",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18670953/

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