因此,我尝试使用我刚刚在 LinkedList 类中编写的 Node 类,但出现以下错误:
Symbol 'Node' could not be resolved
在下面的代码中。
#ifndef LINKEDLIST_H_
#define LINKEDLIST_H_
#include "Node.h"
template<class T>
class LinkedList {
private:
//Data Fields-----------------//
Node<T> head;
Node<T> tail;
};
#endif /* LINKEDLIST_H_ */
节点声明如下:
#ifndef NODE_H_
#define NODE_H_
template<class T>
class Node {
更新:
因此,我的 Node 类包含在我的 LinkedList 中时仍然遇到问题。但是我发现通过将这两个类放在一个头文件中,我没有任何问题。所以这一定意味着问题完全在于包含......这让我感到困惑,因为它看起来像是一些基于语言的细微差别,像我这样的 C++ 初学者不知道......
最佳答案
为什么在#include "Node.h"之后有分号,这就是问题所在。
编辑:您可以执行的故障排除操作:
- 内联类定义
即用类的实际定义替换 #include 语句(仅用于测试) - 检查你的 header guards(比如 #ifndef LINKEDLIST_H_
尝试重命名它们或完全删除它们(再次仅用于测试)
关于c++ - 将一个类(class)包含在另一个类(class)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12020157/