|
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 19
|
|||||||||||||||||||||||||||||||
Вынос глобальных переменных в отдельный файл12.10.2015, 23:58. Показов 5873. Ответов 8
Метки нет (Все метки)
Всем привет! Вопрос такой - сижу разбираюсь с вынесением функций в отдельные файлы.
Что удалось выяснить - подключая через #include файл *.h при компиляции мы фактически переносим код из файла *.h - в общий машинный код программы. ? Если так - то в этом файле можно прописать 1)все #include <iostream> и т д библиотеки 2) всякие константы и т д. 3) определение пространства имен Есть ли смысл выносить все это в файл *.h?? И еще: - почему в файле *.cpp приходится определять пространство имен, если оно определено в *.h - почему не видна переменная b? объявлена как extern и должна быть видна во всем проекте
0
|
|||||||||||||||||||||||||||||||
| 12.10.2015, 23:58 | |
|
Ответы с готовыми решениями:
8
Вынос переменных в отдельный модуль
Вынос DTD в отдельный файл. |
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 13.10.2015, 00:10 | |
|
1) да можно подключить всё, что надо везде как правило такие файлы так и называются core.h в них подключение std контейнеров и define ключей.
2) да там можно подключить константы - но я против глобальных констант без класса - уж такой я 3) нет не стоит писать там namespace - толку от разделения на namespac'ы если вы пихаете подключение вовсе фалйы 4) в cpp файле может быть реализованы классы 100500 разных пространств имён по факту. Поэтому стоит указывать явно какого namespace класса мы пишим реализацию. 5) как я уже говорил чистый СИшная переменная - не для меня. Отлавить её хвост крайне сложно
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 19
|
|
| 13.10.2015, 00:24 [ТС] | |
|
ага, уже разобрался с std - в файле с реализацией функции тоже нужно включать *.h с определением пространства. вроде бы так?
Добавлено через 7 минут я тоже много слышал про глобальные переменные, но сейчас интересует просто понимание и механика - почему при объявлении extern переменную не видно в проекте? Добавлено через 4 минуты namespacы убрал, спасибо
0
|
|
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
| 13.10.2015, 01:58 | |
|
maks1710, ну потому что ты не подключил ее в майн
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 19
|
|
| 13.10.2015, 06:53 [ТС] | |
|
Mesteriis, , а как это сделать?
0
|
|
|
653 / 161 / 64
Регистрация: 08.04.2015
Сообщений: 411
|
|
| 13.10.2015, 07:03 | |
|
Переменная b объявлена, но нигде не определена. Ошибка будет на этапе компоновки.
"Внешняя" != "глобальная".
0
|
|
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
| 13.10.2015, 15:44 | |
|
maks1710, командной #include и имя файла где объявляешь
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 19
|
|
| 13.10.2015, 15:54 [ТС] | |
|
т.е. в main прописать #include "f.h"
тогда переменная b будет видна во всем проекте?
0
|
|
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
| 13.10.2015, 15:56 | |
|
maks1710, ага
0
|
|
| 13.10.2015, 15:56 | |
|
Помогаю со студенческими работами здесь
9
Вынос методов в отдельный класс
Рассмотреть программу, написать имена глобальных переменных, локальных переменных, формальных параметров О глобальных переменных Уйти от глобальных переменных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|