在另一个类中包含一个类

时间:2012-08-18 16:16:36

标签: 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_ */

Node的声明如下:

#ifndef NODE_H_
#define NODE_H_

template<class T>
class Node {

更新:

所以我仍然遇到我的LinkedList包含在我的LinkedList中的问题。但我发现通过将两个类放在一个头文件中,我没有问题。所以它必须意味着问题完全在于包含......这使我感到困惑,因为这使得它看起来像某些基于语言的细微差别,像我这样的C ++初学者并不知道...

2 个答案:

答案 0 :(得分:2)

为什么在#include“Node.h”之后你有分号就是问题 编辑:您可以采取的措施进行故障排除:

  1. 内联班级定义
    即将#include语句替换为类的实际定义(仅用于测试)
  2. 检查你的标题守卫(#ifndef LINKEDLIST_H_
    尝试重命名或完全删除它们(再次仅用于测试)

答案 1 :(得分:0)

所以这只是随机开始为我工作......我不知道问题是什么,但它现在有效...我正在使用CDT和eclipse,它不是C ++最稳定的东西发展。所以我的猜测是它与某种方式有关......