Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 22
1

Универсальный способ подключения заголовочных файлов, или как мне не ловить цикличное обьявление каждую компиляцию?

17.06.2019, 16:06. Показов 1032. Ответов 9

Я сейчас на пути создания игры, которая заполонит весь мир - в нее будут играть все, делать бесконечные клоны на мобилки, моя игра побьет рекорды онлайна ПАБГа доты и прочего. От этого меня отделяет всего одна мелочь - заголовочные файлы. А именно - ими вызванные ошибки типа

Error C2061 syntax error: identifier 'Player' TopDownWorld E:\projects\TopDownWorld\Camera.h 21

Дело в том что разные методы раззных классов используют обьекты других классов, как аргументы, или же, некоторые обьекты классов состоят из других обьектов других классов. В таких случаях мне нужно сообщить одному классу про другой, чтобы он знал сколько памяти нужно выделить и бла-бла-бла.
Я начинаю штамповать сотни Includo-в - ловлю цикличное обьявление, потом заменяю их на сотни
class askfjdlk;(предобьявление или как-то там) ловлю еще какую-то дичь, лезу на переполненный стак, там советуют обьявлять ссылки на обьект, это срабатывает но через раз...
Короче.
Мои вопросы к уважаемым вам:
1.Есть ли универсальный способ не мучатся с этим shit(что-то типо засунуть все инклуды в один .h файл и его везде инклудить, плюнуть под кровать и посмотреть под подушку)
if (1. == есть)
Опишите его.
else
Как тогда мне дейвствовать в каждой отдельной ситуации?
Всех кто мне поможет ждет часть акций моей будущей игры, вот увидите это не шутки.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2019, 16:06
Ответы с готовыми решениями:

Организовать проект в виде двух заголовочных и двух программных файлов. Выполнить многофайловую компиляцию
Как это зделать?(( #include "stdafx.h" #include <iostream> #include <conio.h> #include...

Раскритикуйте мой способ избавления от заголовочных файлов
// positive_math.c - операции с массивом целых неотрицательных чисел #ifndef...

Ошибки подключения заголовочных файлов
Приветствую, во время написания кода возникли ошибки, которые пробовал решить по разному, но не...

Про добавление заголовочных файлов в заголовочных файлах
В который раз эта вещь засовывает мозги в блендер! Я про то, что не могу однозначно запомнить...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
9
Модератор
Эксперт С++
10492 / 8731 / 5275
Регистрация: 18.12.2011
Сообщений: 23,348
17.06.2019, 16:19 2
А чем Вас не устроил стандартный способ:
C++
1
2
3
4
5
6
#ifndef ИМЯ_ЗАГОЛОВОЧНОГО_ФАЙЛА
#define  ИМЯ_ЗАГОЛОВОЧНОГО_ФАЙЛА
...
// текст файла
....
#endif
0
Продавец времени
4997 / 2760 / 632
Регистрация: 12.03.2015
Сообщений: 13,375
17.06.2019, 16:39 3
Цитата Сообщение от KRC Посмотреть сообщение
Я сейчас на пути создания игры, которая заполонит весь мир - в нее будут играть все, делать бесконечные клоны на мобилки, моя игра побьет рекорды онлайна ПАБГа доты и прочего.
Люди, которые пишут массовый софт, не задают на форумах вопросы, а отвечают на них. И модерируют, иногда.
------
Поддерживаю предыдущего ответчика по поводу #ifndef.
0
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 22
17.06.2019, 17:23  [ТС] 4
Цитата Сообщение от zss Посмотреть сообщение
А чем Вас не устроил стандартный способ:
Хорошо, но разве #pragma once не делает тоже самое?

Добавлено через 56 секунд
Цитата Сообщение от Verevkin Посмотреть сообщение
Люди, которые пишут массовый софт, не задают на форумах вопросы, а отвечают на них. И модерируют, иногда.
Ты не прав - я же задаю
0
146 / 39 / 26
Регистрация: 11.05.2019
Сообщений: 122
17.06.2019, 17:26 5
Цитата Сообщение от KRC Посмотреть сообщение
Всех кто мне поможет ждет часть акций моей будущей игры, вот увидите это не шутки.
буду следить
1
4046 / 2295 / 958
Регистрация: 07.02.2019
Сообщений: 5,986
17.06.2019, 17:38 6
Цитата Сообщение от KRC Посмотреть сообщение
Есть ли универсальный способ не мучатся с этим shit
Пересмотреть архитектуру, книжки умные почитать по паттернам проектирования, может зайдет
0
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 22
17.06.2019, 17:44  [ТС] 7
Цитата Сообщение от zayats80888 Посмотреть сообщение
Пересмотреть архитектуру, книжки умные почитать по паттернам проектирования, может зайдет
Вот кстати по теме вот этих танцев с с разбиением программы на файлы не видел ни гайдов ни книг ни контента
0
Продавец времени
4997 / 2760 / 632
Регистрация: 12.03.2015
Сообщений: 13,375
17.06.2019, 18:34 8
Цитата Сообщение от KRC Посмотреть сообщение
Ты не прав - я же задаю
Держи меня в курсе, чувак.
0
14114 / 7576 / 1801
Регистрация: 30.01.2014
Сообщений: 12,682
17.06.2019, 18:57 9
Лучший ответ Сообщение было отмечено KRC как решение

Решение

Цитата Сообщение от KRC Посмотреть сообщение
ни книг
Есть книга: Large-Scale C++ Software Design. Эта тема (циклические зависимости) и многие другие темы, связанные с разработкой большого софта разобраны очень подробно. Книга старая, но многое оттуда актуально до сих пор, по крайней мере концептуально (не говоря уж про "азы", которые никогда не поменяются).

ссылочка на амазон

Добавлено через 11 минут
Также очень хорошая книга (есть на русском) "C++. Практический подход к решению проблем программирования".

ссылочка на озон

Цитата Сообщение от KRC Посмотреть сообщение
Есть ли универсальный способ...
Нет. Хотя многие IDE сейчас предлагают типовые шаблоны для распространенных случаев. Принцип: один класс - один *.h файл. Но, разумеется, это не спасет от кривого дизайна.

Цитата Сообщение от KRC Посмотреть сообщение
Как тогда мне дейвствовать в каждой отдельной ситуации?
Набираться опыта постепенно, читать чужой код, писать свой, читать свой, думать головой. Читать книги.
Повторять до наступления просветления.
3
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 22
18.06.2019, 10:16  [ТС] 10
Цитата Сообщение от DrOffset Посмотреть сообщение
Набираться опыта постепенно, читать чужой код, писать свой, читать свой, думать головой. Читать книги.
Повторять до наступления просветления.
Так точно, капитан! Спасибо за ссылки на книги. Я напишу вам когда моя игра будет готова в релизу для обсуждения условий.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2019, 10:16

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как запустить компиляцию файлов из командной строки?
загрузила файлы библиотеки, рекомендуемые в книге Брюса Эккеля и по инструкциям книги пытаюсь...

Какой программой или как мне ассоциировать сразу несколько типов файлов?
задача такая, есть OpenOffice portable, 3.2.1 Установочную не нашел. Нашел программу openWith но...

Как посмотреть содержимое заголовочных файлов в Си?
доброго. как посмотреть содержимое заголовочных файлов в си я про #include <intrin.h> те...

Как компилятору указать директорию заголовочных файлов.
Мне надо на Visual Studio 2010 Ultimate. Нужно указать директорию заголовочных файлов DirectX'а.

Как избежать циклического включения заголовочных файлов?
Сделал в проге кучу классов и кучу указателей на них. В итоге при компиляции выдает кипу ошибок: ...

Универсальный указатель или универсальный скалярный тип
Здравствуйте! Помогите, пожалуйста написать программу: требуется написать универсальный скалярный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.