Включая класс в другом классе
Поэтому я пытаюсь использовать класс 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", вот в чем проблема.
Изменить: Что вы можете сделать для устранения неполадок:
- Вставьте определение класса
т.е. замените оператор # include фактическим определением класса (только для тестирования) - Проверьте защиту заголовков (например, # ifndef LINKEDLIST_H_
попробуйте переименовать или удалить их полностью (снова только для тестирования)
Так что это просто случайно начало работать для меня... Я не знаю, в чем проблема, но это работает сейчас... Я использую CDT с затмением, и это не самая стабильная вещь для разработки на C++. Так что я думаю, что это как-то связано с этим....