Включая класс в другом классе

Поэтому я пытаюсь использовать класс Node, который я только что написал в своем классе LinkedList, но получаю ошибку, которая:

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++, такой как я, не знает…

2 ответа

Решение

Почему у вас точка с запятой после #include "Node.h", вот в чем проблема.
Изменить: Что вы можете сделать для устранения неполадок:

  1. Вставьте определение класса
    т.е. замените оператор # include фактическим определением класса (только для тестирования)
  2. Проверьте защиту заголовков (например, # ifndef LINKEDLIST_H_
    попробуйте переименовать или удалить их полностью (снова только для тестирования)

Так что это просто случайно начало работать для меня... Я не знаю, в чем проблема, но это работает сейчас... Я использую CDT с затмением, и это не самая стабильная вещь для разработки на C++. Так что я думаю, что это как-то связано с этим....

Другие вопросы по тегам