Написал проект, в котором используется много файлов, в каждом по несколько классов и они ссылаются друг на друга. И вот в какой-то момент возникла неразрешимая ошибка с которой не так просто сразу разобраться. Используется класс, который как бы не описан (хотя, конечно же, он описан)...
Может существует какие-то правила, используя которые не возникнет таких ошибок?
Поскольку вы не предоставили пример кода, предположу, что ваша проблема в следующем. У вас есть два класса, которые ссылаются друг на друга. В этом случае, в каком бы порядке не подключать заголовочные файлы, один из них подключится первым, и не увидит второй.
Для таких случаев стоит использовать предварительное объявление классов. Пример:
// bear.h
#ifndef BEAR_H
#define BEAR_H
class balalaika; // не #include "balalaika.h"
class bear
{
balalaika* p_b;
public:
void play();
};
#endif
// bear.cpp
#include "bear.h"
#include "balalaika.h"
void bear::play()
{
// тут можно использовать балалайку
p_b->strings->...
}
// balalaika.h
#ifndef BALALAIKA_H
#define BALALAIKA_H
class bear; // не #include "bear.h"
class balalaika
{
bear* p_owner;
public:
int strings;
// ...
};
#endif
// balalaika.cpp
#include "balalaika.h"
#include "bear.h"
// ...
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хотел бы поинтересоваться, есть ли книги по FLEX и BISON в среде VS? Желательно подробные
Например, подкласс наследует поля и методы надкласса, а другой класс, наследует поля и методы предыдущего подкласса(который наследует надкласс),...
Как можно вывести цикл записей с двумя разными шаблонами? Мне нужно чтобы все четные были с одним шаблоном - нечетный с другимБуду благодарен...