Не могу понять в чем ошибка при наследовании, компилятор пишет, что не определен базовый класс, хотя все заголовки и определение класса я сделал. Вот полный текст ошибки: C2504 Node: не определен базовый класс
.
list.h:
#pragma once
#include "node.h"
#include <iostream>
class Node;
class List : public Node {
friend std::ostream& operator<<(std::ostream& out, const List& list);
private:
Node* head;
Node* tail;
Node* curr;
char min;
size_t size;
public:
void push(char value);
void update();
Node* remove(Node* node = nullptr);
Node* getCurr() const;
Node* getTail() const;
Node* getHead() const;
Node* operator++();
Node* operator--();
List();
~List();
};
node.h:
#pragma once
#include "list.h"
#include <iostream>
class List;
class Node {
friend List;
friend std::ostream& operator<<(std::ostream& out, const List& list);
private:
char value;
Node* next;
Node* prev;
protected:
Node* insert(Node* node);
Node* excluse();
explicit Node(char value = 0);
~Node() = default;
public:
char getValue() const;
void setValue(char value);
};
Как сказано в комментариях, у вас циклическая зависимость в #include. Проблема в том, что базовый класс у вас дружествен к наследнику. Это явная ошибка инкапсуляции. Все поля Node, которые могут понадобиться List, должны быть public или protected. node.h не должен инклюдить list.h. Вообще про него знать ничего не должен.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы на него можно было дать ответ, основанный на фактах и цитатах, отредактировав...
Начал изучать http только и хочется разобраться, можно ли своё расписание запилить с запросами к базе данных универаЕсть сайт университета,...
Я - новичок в автоматизации мобильных приложенийПомогите, пожалуйста, разобраться с возникшей ошибкой: