Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 27.10.2009, 00:37   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию В чём разница между unit, header file, cpp file?

В чём разница между unit, header file, cpp file?
Просто мне нужно удостовериться :P
TwiX вне форума Ответить с цитированием
Старый 27.10.2009, 00:48   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

header file - файл, который содержит лишь описания, но не реализацию функций. Служит своего рода интерфейсом к объектному модулю.
cpp file - файл, который содержит реализацию функций, в последствии он компилируется в .obj-файл(объектный модуль). А unit что не знаю - ни разу не слышал ))
netrino вне форума Ответить с цитированием
Старый 27.10.2009, 00:57   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,002
По умолчанию

unit это же вроде из Делфи.
считай тоже самое что и хидер+цпп-шник.
(просто у него два блока)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.10.2009, 01:05   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
header file - файл, который содержит лишь описания, но не реализацию функций
Как это понимать? Там только прототипы функций, константы и подключенные библиотеки? Тогда каков смысл этого?

Спасибо=)
TwiX вне форума Ответить с цитированием
Старый 27.10.2009, 01:16   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Ну да. Смысл в том, чтобы подключать хидер к разным исходникам. Так как #include в C работает путём полного включения подключаемого файла в тот, где встречается директива #include, то если в нескольких файлах используются функции, описанные в нём, то было бы множественное определение функции и всякие такие приколы.
funcs.h
Код:
int function1(int, int);
int function2(int, int, int);
int function3(int, int, int, int);
funcs.cpp
Код:
int function1(int a, int b)
{
    return a+b;
}

int function2(int a, int b, int c)
{
    return a+b+c;
}

int function3(int a, int b, int c, int d)
{
    return a+b+c+d;
}
main.cpp:
Код:
#include "funcs.h"

int main()
{
    int res1 = function1(4, 9);
    int res2 = function2(2, 4, 9);
    int res3 = function3(3, 5, 9, 10);

    return 0;
}
С другой стороны можно скомпилировать .cpp файл в .obj и использовать его, или библиотеку .obj-файлов(.lib) и хидер к нему, в котором будет описание функций этого объектника. Таким образом можно будет не компилировать по сто раз этот исходник, ну или скрыть реализацию функций от посторонних глаз )
netrino вне форума Ответить с цитированием
Старый 27.10.2009, 13:01   #6
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Спасибо =) Очень доступно объяснил )
TwiX вне форума Ответить с цитированием
Старый 29.04.2012, 18:49   #7
Borkot
Пользователь
 
Аватар для Borkot
 
Регистрация: 29.04.2012
Сообщений: 37
По умолчанию Спасибо

Очень доступно и понятно
Borkot вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Error 1 fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory s20 Общие вопросы C/C++ 2 26.09.2009 22:28
В чём разница между запросами и программным обходом записей базы? Arkuz БД в Delphi 6 20.08.2009 15:19
В чём разница между TCP и UDP? TwiX Работа с сетью в Delphi 4 28.07.2009 22:54
в чём разница? Dimarik Общие вопросы C/C++ 1 25.04.2009 20:27
unexpected end of file while looking for precompiled header directive StakanpORTvejna Общие вопросы C/C++ 7 10.06.2008 16:52


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840