c++ - 将一个类(class)包含在另一个类(class)中

标签 c++ class templates include inclusion

因此,我尝试使用我刚刚在 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"之后有分号,这就是问题所在。
编辑:您可以执行的故障排除操作:

  1. 内联类定义
    即用类的实际定义替换 #include 语句(仅用于测试)
  2. 检查你的 header guards(比如 #ifndef LINKEDLIST_H_
    尝试重命名它们或完全删除它们(再次仅用于测试)

关于c++ - 将一个类(class)包含在另一个类(class)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12020157/

相关文章:

python - 在 Python 中使用类根据用户输入打印出实例属性

c++ - 在 objective-c ++ 文件中包含 c++ 库时的级联 objective-c 语法错误

Python 嵌套类定义导致无休止的递归...我在这里做错了什么?

class - 如何向本地类定义的异常添加短信?

java - 有没有办法以编程方式从模板生成 java 类?

C++ 模板阶乘计算

c++ - 无法在 Assets 文件夹中创建 .db 文件

C++:嵌套映射

c++ - 部分卡片上的 cuda 应用程序

angularjs - 如何使用最新版本的 AngularJS 开始一个新项目?