Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Pro100Whisky
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 35
#1

Подключение заголовочного файла

25.01.2014, 16:32. Просмотров 1539. Ответов 9
Метки нет (Все метки)

Как подключить правильно заголовочный файл и какие библиотеки подключать в заголовочном файле?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2014, 16:32
Ответы с готовыми решениями:

Подключение заголовочного файла
При подключении заголовочного файла вылазит ошибка: Код: #include...

Подключение заголовочного файла record.h
Есть программа, только она не запускается на моём компе (долго рассказывать...

Подключение собственного заголовочного файла
В общем есть файл с исходный кодом, который содержит main(). Здесь же подключаю...

Создание и подключение заголовочного файла
Всем привет! Столкнулся с простой но очень интересной проблемой... Создаю...

Подключение заголовочного файла std_lib_facilities.h
Здравствуйте. Учу C++ по книге Stroustrup'а. Автор настоятельно просит...

9
0x10
2569 / 1749 / 287
Регистрация: 24.11.2012
Сообщений: 4,373
25.01.2014, 16:35 #2
Вопрос без намека на хоть какую-нибудь конкретику.
Для подключения заголовочных файлов используется директива #include.
#include <имя_файла> или #include "имя_файла"
Что конкретно не ясно?
0
MrGluck
Модератор
Эксперт CЭксперт С++
8054 / 4898 / 1426
Регистрация: 29.11.2010
Сообщений: 13,296
25.01.2014, 16:37 #3
Когда мы указывает заголовочный файл, входящий в стандартную библиотеку, то пишем его название в угловых скобках и его путь ищет линкер в определенной папке со всеми инклюдами, когда нужно указать пользовательский, то указываем его имя в кавычках и его ищет в папке с проектом или бинарником (зависит от IDE).
Вот пример:
C++
1
2
#include <iostream> // подключаем заголовочный файл для ввода-вывода (входит в стандартную библиотеку)
#include "MyClass.h" // подключаем собственный заголовочный файл (лежит где-то рядом)
0
Pro100Whisky
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 35
25.01.2014, 16:38  [ТС] #4
0x10, Вопрос, как правильно запихнуть код в заголовочный файл?
0
MrGluck
Модератор
Эксперт CЭксперт С++
8054 / 4898 / 1426
Регистрация: 29.11.2010
Сообщений: 13,296
25.01.2014, 16:39 #5
Мануал для CB:
code::blocks не находит .h файл
0
0x10
2569 / 1749 / 287
Регистрация: 24.11.2012
Сообщений: 4,373
25.01.2014, 16:40 #6
Цитата Сообщение от Pro100Whisky Посмотреть сообщение
Вопрос, как правильно запихнуть код в заголовочный файл?
1. Создать файл.
2. Написать в нем код.
Все.

Единственное - чтобы избежать повторного включения одного и того же файла, следует использовать include guard или pragma once (http://ru.wikipedia.org/wiki/Include_guard)
0
Pro100Whisky
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 35
25.01.2014, 16:57  [ТС] #7
Ребят не получается раскидать по файлу. Помогите, плиз. Вот код.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
 
 
class MyClass
{
    int x, y, z;
public:
    friend ostream &operator << (ostream &, const MyClass&); // перегрузка опер.вывода, ключевое слово << (ссылка на перегрузку оператора, ссылка на класс)
    friend istream &operator >> (istream &, MyClass&);       // перегрузка опер.ввода, ключевое слово >> (ссылка на перегрузку оператора, ссылка на класс)
};
 
istream &operator >> (istream &in, MyClass& my) // перегрузка функции ввода
{
    return in >> my.x  >> my.y>> my.z;
}
 
ostream &operator << (ostream &out, const MyClass& my) // перегрузка функции вывода
{
    string h;
    switch(my.y)
    {
    case 01: {if(my.x<=31){h="января"; break;}else {h="неправильный ввод";break;}}
    case 02: {if(my.x<=28){h="февраля"; break;}else {h="неправильный ввод";break;}}
    case 03: { h="март"; break;}
    case 04:  {h="апрель"; break;}
    case 05: { h="май"; break;}
    case 06:  {h="июнь"; break;}
    case 07: { h="июль"; break;}
    case 8:  {h="август";break;}
    case 9:  {h="сентябрь";break;}
    case 10:  {h="октябрь";break;}
    case 11:  {h="ноябрь";break;}
    case 12:  {h="декабрь";break;}
    default: h="неправильный ввод";
    }
    if(h=="неправильный ввод")return out<<h;
    else
    return out << my.x << " " << h<<" "<<my.z<<" года";
}
 
int main()
{
    setlocale(0,"Rus");
    MyClass m;
    cin >> m;
    cout << m;
}
0
0x10
2569 / 1749 / 287
Регистрация: 24.11.2012
Сообщений: 4,373
25.01.2014, 17:03 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
// MyClass.h
#pragma once
 
#include <iosfwd>
 
class MyClass
{
    int x, y, z;
public:
    friend std::ostream &operator << (std::ostream &, const MyClass&); // перегрузка опер.вывода, ключевое слово << (ссылка на перегрузку оператора, ссылка на класс)
    friend std::istream &operator >> (std::istream &, MyClass&);       // перегрузка опер.ввода, ключевое слово >> (ссылка на перегрузку оператора, ссылка на класс)
};
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
31
32
33
34
// MyClass.cpp
#include "MyClass.h"
 
#include <iostream>
#include <string>
 
std::istream &operator >> (std::istream &in, MyClass& my) // перегрузка функции ввода
{
    return in >> my.x  >> my.y>> my.z;
}
 
std::ostream &operator << (std::ostream &out, const MyClass& my) // перегрузка функции вывода
{
    std::string h;
    switch(my.y)
    {
    case 01: {if(my.x<=31){h="января"; break;}else {h="неправильный ввод";break;}}
    case 02: {if(my.x<=28){h="февраля"; break;}else {h="неправильный ввод";break;}}
    case 03: { h="март"; break;}
    case 04:  {h="апрель"; break;}
    case 05: { h="май"; break;}
    case 06:  {h="июнь"; break;}
    case 07: { h="июль"; break;}
    case 8:  {h="август";break;}
    case 9:  {h="сентябрь";break;}
    case 10:  {h="октябрь";break;}
    case 11:  {h="ноябрь";break;}
    case 12:  {h="декабрь";break;}
    default: h="неправильный ввод";
    }
    if(h=="неправильный ввод")return out<<h;
    else
    return out << my.x << " " << h<<" "<<my.z<<" года";
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
// main.cpp
#include <iostream>
 
#include "MyClass.h"
 
int main()
{
    setlocale(0,"Rus");
    MyClass m;
    //cin >> m;
    std::cout << m;
}
1
Pro100Whisky
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 35
25.01.2014, 17:18  [ТС] #9
0x10, Спасибо и правда всё заработало.
0
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.01.2014, 17:23 #10
Цитата Сообщение от Pro100Whisky Посмотреть сообщение
Вопрос, как правильно запихнуть код в заголовочный файл?
Общий принцип: объявления в .h, реализации в .cpp, там, где нужно использовать то, что в .h, делается #include ".h". Исключение составляют шаблоны. Для них, объявления и реализации, должны находиться в одном файле (.h).
0
25.01.2014, 17:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2014, 17:23

Подключение заголовочного файла QList
Что-то затупил по структуре проекта. есть header.h: #include &lt;QList&gt;...

Подключение заголовочного файла, файлов ресурсов
Добрый день, возникла проблема с подключением файлов . Есть готовые файлы,чтоб...

Подключение заголовочного файла к нескольким CPP
Доброго времени суток! У меня проблема такого рода: есть base.h в котором...


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

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

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