Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> #include<h. или .cpp>, Чем отличаются? 
:(
    Опции темы
GRON
  Дата 30.1.2004, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 21.11.2003

Репутация: нет
Всего: нет



Сабж.
Зачем нужны h. файлы, и когда их нужно употреблять вместо обычных .cpp? (Имеется в виду директива препроцессора #include)
PM MAIL   Вверх
NiJazz
Дата 30.1.2004, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



h - сокращённо "header" (заголовочный). Это для формальности...
PM MAIL   Вверх
maxim1000
Дата 30.1.2004, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



h-файлы ни в коем случае не заменяют cpp-файлы
один h-файл может соответствовать нескольким cpp-файлам, а может вообще не соответствовать ни одному (а может несколько h-файлов соответствовать одному cpp)
h-файлы используются, когда нужно писать много одинаковых строк во многих файлах
например, какие-нибудь #define или объявления каких-нибудь функций
просто обычно, когда пишут какой-то cpp-файл (не тот, который с main), предполагается, что другие файлы будут использовать функции, которые в нем написаны, поэтому делается h-файл, чтобы не заставлять авторов других файлов объявлять нужные им функции - вместо этого они просто подключают h-файл


--------------------
qqq
PM WWW   Вверх
GRON
Дата 30.1.2004, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 21.11.2003

Репутация: нет
Всего: нет



Я не совсем понял... Если у меня в срр файле описана функция, зачем использовать ее объявление в h файле, если можно подключить срр файл с этой функцией до ее использования?
PM MAIL   Вверх
maxim1000
Дата 30.1.2004, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



не знаю, что ты имеешь в виду под словом "подключить"
есть два варианта:
1. подключить файл cpp в проект
2. подключить его в другой файл с помощью #include

в первом случае файлы компилируются каждый отдельно, а потом вместе линкуются, если потом изменить один из них, то перекомпилируется только он, а потом опять пройдет линковка таким образом экономится время между нажатием кнопки F7 и запуком готового exe-шника

во втором случае мы получаем огромный cpp-файл (если будем много подключать), который при любом изменении будет перекомпилироваться весь, что будет очень медленно
довольно сложно представить сколько бы компилировались программы, если бы нужно было компилировать все стандартные библиотеки
а еще можно попробовать вообразить, что в одном проекте присутствуют файлы на разных языках (например, C и Asm) в этом случае #include не поможет, а после компиляции файла различия между языками пропадают

в общем для программы с двумя-тремя функциями, может, сойдет и #include cpp-файла, но ни к чему хорошему в серьезной программе это не приведет...


--------------------
qqq
PM WWW   Вверх
GRON
Дата 31.1.2004, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 21.11.2003

Репутация: нет
Всего: нет



Аа--а-а-а-а... Теперь понял... Спасибо, бегу делать .h файлы. smile.gif

PM MAIL   Вверх
GRON
Дата 31.1.2004, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 21.11.2003

Репутация: нет
Всего: нет



maxim1000
Слушай, у меня в проекте три файла: main.cpp, people.cpp, people.h
В первом используется класс People, определенный в people.cpp. В people.h - объявление этого класса.
Вопросы:
1. как объявить этот класс в people.h?
2. нужно ли подключать people.cpp в people.h?
3. МОЖНО ЛИ ВООБЩЕ ОБЪЯВЛЯТЬ КЛАСС В ЗАГОЛОВОЧНОМ ФАЙЛЕ?
Спасибо.



Это сообщение отредактировал(а) GRON - 31.1.2004, 13:15
PM MAIL   Вверх
C'hoosen++
Дата 31.1.2004, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 21.1.2004

Репутация: нет
Всего: нет



Просто если код .срр файла большой, то удобно объявления всех функций
держать в другом файле (с расширением .h), но непосредственно связанным
с ним.
PM MAIL   Вверх
GRON
Дата 31.1.2004, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 21.11.2003

Репутация: нет
Всего: нет



C'hoosen++
А все-таки в хэдер нужно добавлять #include "соотв. срр-файл" или нет? И как объявить класс? Или это нельзя сделать.
PM MAIL   Вверх
maxim1000
Дата 31.1.2004, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



people.h:
Код
class Cpeople
{
 private:
   int n;
 public:
   int Quantity();
};

people.cpp
Код
#include "people.h"
int Cpeople::Quantity()
{
 return n;
};

main.cpp
Код
#include "people.h"
void main()
{
 Cpeople x;
 int n;

 n=x.Quantity();
};


Это сообщение отредактировал(а) maxim1000 - 31.1.2004, 20:07


--------------------
qqq
PM WWW   Вверх
Ner-zul
Дата 31.1.2004, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 24.1.2004
Где: Москва

Репутация: нет
Всего: нет



Header-файлы(или заголовочные вайлы ) содержат прототипы функций которые ты используешь в программе. Для работы функций необходимо что бы ты подключал заголовочные файлы с помощью препроцессорной деррективы, например: #include <stdio.h>.
--------------------
 Ner-zul   
PM MAIL ICQ   Вверх
GRON
Дата 2.2.2004, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 21.11.2003

Репутация: нет
Всего: нет



Спасибо всем. Тема закрыта.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0778 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.