Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
hepr
61 / 33 / 13
Регистрация: 21.10.2010
Сообщений: 538
1

Отличие headerов "something.h" и "something"

28.03.2012, 15:35. Просмотров 520. Ответов 7
Метки нет (Все метки)

Здравствуйте, не подскажите чем отличается:
#include "something.h"
и
#include "something"
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2012, 15:35
Ответы с готовыми решениями:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло",...

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую классы: − воин; −...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс"
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления"
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс...

7
soon
2547 / 1312 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.03.2012, 15:50 2
У второго отсутствует расширение.
0
hepr
61 / 33 / 13
Регистрация: 21.10.2010
Сообщений: 538
28.03.2012, 15:58  [ТС] 3
И что?
То есть оно автоматом проставляется?
А если да, то почему это работает:
C++
1
2
3
4
5
6
#include "iostream"
int main()
{
    system("pause");
    return 0;
}
А это нет:
C++
1
2
3
4
5
6
#include "iostream.h"
int main()
{
    system("pause");
    return 0;
}
(Выводит: Ошибка 1 fatal error C1083: Не удается открыть файл include: iostream.h: No such file or directory c:\users\ruzik\documents\visual studio 2008\projects\console\console\main.cpp 1
)
0
soon
2547 / 1312 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.03.2012, 16:06 4
Во-первых, я надеюсь, вы знаете, что хедеры, заключенные в "" ищутся сначала в текущей папке. Соответсвенно, писать "iostream" не стоит, я могу закинуть в папку с проектом пустой файл iostream и компилится уже ничего не будет
Во-вторых, нет, ничего не подставляется. Просто у этих файлов нет расширения. Я точно не знаю, зачем так сделано, но могу предположить, что таким образом выделяется стандартная библиотека.
В-третьих, второй пример не работает, поскольку файл iostream.h не существует.
0
ForEveR
В астрале
Эксперт С++
8004 / 4761 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
28.03.2012, 16:11 5
soon, В сущности да, выделяется, к примеру в gcc - реализация практически вся реальная реализация лежит в папке bits в .h файлах. А файлы без расширения включают .h файлы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/** @file include/vector
 *  This is a Standard C++ Library header.
 */
 
#ifndef _GLIBCXX_VECTOR
#define _GLIBCXX_VECTOR 1
 
#pragma GCC system_header
 
#include <bits/stl_algobase.h>
#include <bits/allocator.h>
#include <bits/stl_construct.h>
#include <bits/stl_uninitialized.h>
#include <bits/stl_vector.h>
#include <bits/stl_bvector.h> 
#include <bits/range_access.h>
 
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include <bits/vector.tcc>
#endif
 
#ifdef _GLIBCXX_DEBUG
# include <debug/vector>
#endif
 
#ifdef _GLIBCXX_PROFILE
# include <profile/vector>
#endif
 
#endif /* _GLIBCXX_VECTOR */
2
silent_1991
Эксперт С++
5013 / 3073 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
29.03.2012, 00:51 6
hepr, вы никогда не пробовали заинклюдить txt-файл? А rar? Попробуйте, узнаете много нового))
1
Evg
Эксперт CАвтор FAQ
19798 / 7437 / 561
Регистрация: 30.03.2009
Сообщений: 20,746
Записей в блоге: 30
29.03.2012, 08:51 7
Цитата Сообщение от hepr Посмотреть сообщение
А если да, то почему это работает
Первое отличается от второго тем, что это попросту два разный файла. Не вдаваясь в подробности можно сказать, что они оба содержат внутри себя одни и те же кишки, но в одном файле вокруг кишков дополнительно приклеен namespace std. Другой разницы между ними нет

Касаемо файлов с расширением .h и без него: Возникает ошибка с using namespace std; и include <?> для cout
Что такое #include вкратце можешь почитать тут: Для чего нужен define?
Подробно тут: http://www.cyberforum.ru/blogs/18334/blog100.html
0
Байт
Эксперт C
20349 / 12901 / 2702
Регистрация: 24.12.2010
Сообщений: 26,964
29.03.2012, 10:14 8
Цитата Сообщение от hepr Посмотреть сообщение
И что?
То есть оно автоматом проставляется?
Ничего автоматом не подставляется. Читается именно тот файл, что вами указан. Но он может в себя включать другой файл. А тот - третий и т.д. Там такая паутина может образоваться! Зачем это сделано - не знаю.
Для прояснения ситуации посмотрите какой-нибудь инклуде-файл, потом тот, кого он подключает и тд...
0
29.03.2012, 10:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2012, 10:14

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания"
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата"
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в...

Калькулятор для работы с знаками "+" "-" "/" "*" через string без приоритетов
Нужно написать калькулятор для работы с знаками &quot;+&quot; &quot;-&quot; &quot;/&quot; &quot;*&quot; через string. Приоритеты действий...


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

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

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