Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
#1

Почему нельзя компилировать отдельный заголовочный файл? - C++

12.08.2012, 11:57. Просмотров 883. Ответов 6
Метки нет (Все метки)

Вообще можно весь код поместить в один .cpp файл. Но, как я понимаю, люди советуют все функции помещать в отдельные заголовочные файлы. А потом эти заголовочные файлы подключать директивой #include в основной файл .cpp. Хотя я не понимаю, чем это лучше то? Не вижу преимуществ. Не так давно задал этот вопрос своему шефу. Но только он задачи решает не на С++ как я, а на Фортране. Для Фортрана у него какая-то среда разработки аналогичная Visual Studio 2010. Так он взял и открыл какой-то проект, а потом открыл отдельный заголовочный файл в нём (содержащий какую-то функцию) и нажал на компиляцию. Так-то это на самом деле довольно удобно получается, если можно компилировать и, соответственно, искать ошибки в каждом отдельном файле проекта. Но почему в Студии для С++ так нельзя? (это и есть мой вопрос к Вам). Я открываю любой заголовочный файл, захожу в пункт меню Построение, а подпункт Компилировать затемнён. То есть компилировать получается только основной файл .cpp. Короче, я так понял, что заниматься численными методами действительно лучше на Фортране. Но при этом в Студии в окне ошибок пишут в каком именно файле проекта и в какой строчке там ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2012, 11:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему нельзя компилировать отдельный заголовочный файл? (C++):

Почему Не Определён Ctrcmp, тема про заголовочный файл string.h - C++
Здравствуйте вот код, компилятор пишет что не определён ctrcmp, заголовочный файл писал по разному <string.h>,<string>,<cstring>, но всё...

Почему выносят объявление класса в отдельный файл - C++
почему не правильно выносить классы Х файл, и рекомендуют в хереде объявления а в спп описание* чем плохо, если все будет в х файле?

Зачем нужен h-файл? Почему нельзя все хранить в cpp? - C++
Помогите новичку! С с++ работаю впервые. Перешел с явы, делфи, рнр. Не понимаю что такое h-файл и чем он отличается от cpp и почему нельзя...

Заголовочный файл - C++
Доброго времени суток! Ситуация такая: хочу, исходя из функции, создать заголовочный файл. Но, увы, не умею создавать их. Хотелось бы...

Заголовочный файл - C++
Здравствуйте. Помогите, пожалуйста, разобраться с заголовочными файлами и функциями-"друзьями". Например: main.cpp #include "A.h" ...

Заголовочный файл. - C++
Доброго времени суток. Вопрос возник, по скольку в лекции по программированию ничего нет) я вроде как поняла что такое заголовочный...

6
canopen
415 / 416 / 12
Регистрация: 16.07.2012
Сообщений: 886
12.08.2012, 12:05 #2
Советуют не сами функции помещать в заголовочный файл, а их объявления.
0
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
12.08.2012, 12:24 #3
canopen,

Не по теме:

как по мне, лучше закинуть функции в некий array.h, чем делать два файла типа : array.h (прототипы) и array.cpp (сами функции). Меньше мороки, ведь не надо в обоих файлах менять объявления, если вдруг добавил фактический параметр.

0
fasked
Эксперт С++
4951 / 2531 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
12.08.2012, 12:29 #4
nexen, когда узнаешь про раздельную компиляцию и зачем она нужна, возвращайся.
0
canopen
415 / 416 / 12
Регистрация: 16.07.2012
Сообщений: 886
12.08.2012, 12:33 #5
Цитата Сообщение от fasked Посмотреть сообщение
nexen, когда узнаешь про раздельную компиляцию и зачем она нужна, возвращайся.
Ну кстати отсутствие модулей в C++ - это один из главных его недостатков. Кстати вот здесь про проблемы C++ очень хорошо и подробно написано.
0
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
12.08.2012, 13:01 #6
компилятор обрабатывает translation unit-ы, а это source файл + хидеры. т.е. хидеры сами по себе еденицей трансляции не являются и не компилируются.
В студии есть возможность компиляции одного файла (сорца) из текущей вкладки (Ctrl-F7). По идее совсем не сложно и возможно в других IDE даже есть возможность проверять именно хидеры. Для этого IDE должна была бы сгенерить временный почти нустой спп файл в включенным инклудником, который хотят проверить и скомпилировать его. После этого удалить. В студии это наверно можно сделать кастомными командами.
0
fasked
Эксперт С++
4951 / 2531 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
14.08.2012, 16:02 #7
Цитата Сообщение от canopen Посмотреть сообщение
Ну кстати отсутствие модулей в C++ - это один из главных его недостатков. Кстати вот здесь про проблемы C++ очень хорошо и подробно написано.
Почитал. Почти все из разряда "Не осилил".
Цитата Сообщение от DU Посмотреть сообщение
компилятор обрабатывает translation unit-ы, а это source файл + хидеры. т.е. хидеры сами по себе еденицей трансляции не являются и не компилируются.
Это тоже неверно.
0
14.08.2012, 16:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2012, 16:02
Привет! Вот еще темы с ответами:

Заголовочный файл - C++
Опишите подробно, пожалуйста , как создается заголовочный файл в среде 2010 . С++

Заголовочный файл - C++
Для чево етот файл используется??? Как ево использовать в своей программе помогите хочу разобраться)

Заголовочный файл .h - C++
Здравствуйте уважаемые гуру-программисты! Столкнулся с такой проблемой. Пишу в С++ на линуксе в IDE geany и такая проблема, когда создаю...

Заголовочный файл - C++
Написал в заголовочном файле вот такой код: #ifndef SALES_DATA_H #define SALES_DATA_H #include <string> struct Sales_Data { ...


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

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

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