Как сделать прототип класса? Здравствуйте. Имеется 2 класса.
Первый класс содержит вектор в котором хранятся ссылки на объекты типа второго класса.
А второй класс является наследуемым от первого.
Как реализовать определения этих классов? Т.к. всегда класс который определён ранее ругается, что не знает второго и компилировать программу не удаётся. Как быть?

21 Авг 2019 в 07:05
171 +1
0
Ответы
1

Для создания прототипа класса вам необходимо использовать предварительные объявления (forward declarations). Например, вы можете определить первый класс со ссылками на объекты второго класса, а затем объявить второй класс с помощью forward declaration. Вот пример кода:

// Forward declaration второго класса
class SecondClass;
class FirstClass {
public:
std::vector<SecondClass*> objects;
// Другие члены класса
};
// Определение второго класса
class SecondClass : public FirstClass {
public:
// Члены класса второго класса
};
int main() {
// Ваш код
return 0;
}

Таким образом, вы предварительно объявляете второй класс перед его использованием в первом классе, что позволит избежать ошибок компиляции. Надеюсь, это поможет вам реализовать определения ваших классов.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 683 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир