0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 19
|
||||||||||||||||
1 | ||||||||||||||||
Вынос глобальных переменных в отдельный файл12.10.2015, 23:58. Показов 5375. Ответов 8
Метки нет (Все метки)
Всем привет! Вопрос такой - сижу разбираюсь с вынесением функций в отдельные файлы.
Что удалось выяснить - подключая через #include файл *.h при компиляции мы фактически переносим код из файла *.h - в общий машинный код программы. ? Если так - то в этом файле можно прописать 1)все #include <iostream> и т д библиотеки 2) всякие константы и т д. 3) определение пространства имен Есть ли смысл выносить все это в файл *.h?? И еще: - почему в файле *.cpp приходится определять пространство имен, если оно определено в *.h - почему не видна переменная b? объявлена как extern и должна быть видна во всем проекте Код
файл f.h
Код
файл f.cpp
Код
MAIN.CPP
0
|
12.10.2015, 23:58 | |
Ответы с готовыми решениями:
8
Вынос переменных в отдельный модуль Вынос класса в отдельный файл Вынос DTD в отдельный файл. Вынос методов в отдельный класс |
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
13.10.2015, 00:10 | 2 |
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 [ТС] | 3 |
ага, уже разобрался с std - в файле с реализацией функции тоже нужно включать *.h с определением пространства. вроде бы так?
Добавлено через 7 минут я тоже много слышал про глобальные переменные, но сейчас интересует просто понимание и механика - почему при объявлении extern переменную не видно в проекте? Добавлено через 4 минуты namespacы убрал, спасибо
0
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
13.10.2015, 01:58 | 4 |
maks1710, ну потому что ты не подключил ее в майн
0
|
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 19
|
|
13.10.2015, 06:53 [ТС] | 5 |
Mesteriis, , а как это сделать?
0
|
642 / 151 / 60
Регистрация: 08.04.2015
Сообщений: 389
|
|
13.10.2015, 07:03 | 6 |
Переменная b объявлена, но нигде не определена. Ошибка будет на этапе компоновки.
"Внешняя" != "глобальная".
0
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
13.10.2015, 15:44 | 7 |
maks1710, командной #include и имя файла где объявляешь
0
|
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 19
|
|
13.10.2015, 15:54 [ТС] | 8 |
т.е. в main прописать #include "f.h"
тогда переменная b будет видна во всем проекте?
0
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
13.10.2015, 15:56 | 9 |
maks1710, ага
0
|
13.10.2015, 15:56 | |
13.10.2015, 15:56 | |
Помогаю со студенческими работами здесь
9
Как вынести описание переменных и функций в отдельный файл? Рассмотреть программу, написать имена глобальных переменных, локальных переменных, формальных параметров О глобальных переменных Уйти от глобальных переменных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |