| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > #include<h. или .cpp> |
| Автор: GRON 30.1.2004, 18:00 |
| Сабж. Зачем нужны h. файлы, и когда их нужно употреблять вместо обычных .cpp? (Имеется в виду директива препроцессора #include) |
| Автор: NiJazz 30.1.2004, 19:18 |
| h - сокращённо "header" (заголовочный). Это для формальности... |
| Автор: maxim1000 30.1.2004, 19:49 |
| h-файлы ни в коем случае не заменяют cpp-файлы один h-файл может соответствовать нескольким cpp-файлам, а может вообще не соответствовать ни одному (а может несколько h-файлов соответствовать одному cpp) h-файлы используются, когда нужно писать много одинаковых строк во многих файлах например, какие-нибудь #define или объявления каких-нибудь функций просто обычно, когда пишут какой-то cpp-файл (не тот, который с main), предполагается, что другие файлы будут использовать функции, которые в нем написаны, поэтому делается h-файл, чтобы не заставлять авторов других файлов объявлять нужные им функции - вместо этого они просто подключают h-файл |
| Автор: GRON 30.1.2004, 23:21 |
| Я не совсем понял... Если у меня в срр файле описана функция, зачем использовать ее объявление в h файле, если можно подключить срр файл с этой функцией до ее использования? |
| Автор: maxim1000 30.1.2004, 23:52 |
| не знаю, что ты имеешь в виду под словом "подключить" есть два варианта: 1. подключить файл cpp в проект 2. подключить его в другой файл с помощью #include в первом случае файлы компилируются каждый отдельно, а потом вместе линкуются, если потом изменить один из них, то перекомпилируется только он, а потом опять пройдет линковка таким образом экономится время между нажатием кнопки F7 и запуком готового exe-шника во втором случае мы получаем огромный cpp-файл (если будем много подключать), который при любом изменении будет перекомпилироваться весь, что будет очень медленно довольно сложно представить сколько бы компилировались программы, если бы нужно было компилировать все стандартные библиотеки а еще можно попробовать вообразить, что в одном проекте присутствуют файлы на разных языках (например, C и Asm) в этом случае #include не поможет, а после компиляции файла различия между языками пропадают в общем для программы с двумя-тремя функциями, может, сойдет и #include cpp-файла, но ни к чему хорошему в серьезной программе это не приведет... |
| Автор: GRON 31.1.2004, 12:26 |
| Аа--а-а-а-а... Теперь понял... Спасибо, бегу делать .h файлы. |
| Автор: GRON 31.1.2004, 13:15 |
| maxim1000 Слушай, у меня в проекте три файла: main.cpp, people.cpp, people.h В первом используется класс People, определенный в people.cpp. В people.h - объявление этого класса. Вопросы: 1. как объявить этот класс в people.h? 2. нужно ли подключать people.cpp в people.h? 3. МОЖНО ЛИ ВООБЩЕ ОБЪЯВЛЯТЬ КЛАСС В ЗАГОЛОВОЧНОМ ФАЙЛЕ? Спасибо. |
| Автор: C'hoosen++ 31.1.2004, 14:06 |
| Просто если код .срр файла большой, то удобно объявления всех функций держать в другом файле (с расширением .h), но непосредственно связанным с ним. |
| Автор: GRON 31.1.2004, 15:23 |
| C'hoosen++ А все-таки в хэдер нужно добавлять #include "соотв. срр-файл" или нет? И как объявить класс? Или это нельзя сделать. |
| Автор: maxim1000 31.1.2004, 20:06 | ||||||
people.h:
people.cpp
main.cpp
|
| Автор: Ner-zul 31.1.2004, 21:32 |
| Header-файлы(или заголовочные вайлы ) содержат прототипы функций которые ты используешь в программе. Для работы функций необходимо что бы ты подключал заголовочные файлы с помощью препроцессорной деррективы, например: #include <stdio.h>. |
| Автор: GRON 2.2.2004, 15:31 |
| Спасибо всем. Тема закрыта. |