Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
#1

Заголовочный файл. Хедер - C++

01.11.2011, 13:02. Просмотров 2311. Ответов 22
Метки нет (Все метки)

Всем привет!) У меня есть программа. Вот она.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
// Списки и структуры.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include "H1.h"
using namespace std;
 
 
struct Node
{
    char a;
    int d;
    Node *next;
    Node *prev;
 
};
 
Node * first(char a);
void add(Node **pend, char a);
Node * find(Node * const pbeg, int i);
bool remove(Node **pbeg, Node **pend, int key);
Node * incert(Node * const pbeg, Node **pend, int key, char a);
 
int _tmain(int argc, _TCHAR* argv[])
{
    Node *pbeg = first('a'); // Формирование первого элемента списка
    Node *pend = pbeg; // Список заканчивается, едва начавшись
    // Добавление в конец списка четырех элементов 2, 3. 4. и 5:
    int size;
    int ind;
    int scob=0;
    char Form[]={"(ds)("};
    size=strlen(Form);
    for (int i = 0; i<size; i++)
    {
        add(&pend,Form[i]);
        if (Form[i]=='(')
        {
            scob++;
            ind=i;
        }
        if (Form[i]==')')
        {
            scob--;
            ind=i;
        }   
    }
 
    //incert(pbeg, &pend, 'c', 'p');
    // Удаление элемента 5
    //if(!remove (&pbeg, &pend, Form[3]))cout << "не найден";
    // Вставка элемента 200 гюсле элемента 2:
    Node *pv = pbeg;    
    
 
    
    while (pv)
    {
        // вывод списка на экран
        cout << pv->a << ' ';
        pv = pv->next;
    }
    
    if (scob> 0)
           cout << "( bigger"<<ind<<endl;
    else if (scob< 0) 
           cout << ") bigger"<<ind<<endl;
    else if (scob == 0) cout << "Good";
 
 
    
 
    return 0;
}
 
 
//
// Формирование первого элемента
Node * first(char a)
{
    Node *pv = new Node;
    pv->a = a;
    pv->next = 0;
    pv->prev = 0;
    
    return pv;
}
//
// Добавление в конец списка
 
void add(Node **pend,char a)
{
    Node *pv = new Node;
    pv->a = a; 
    pv->next = 0; 
    pv->prev = *pend;
    (*pend)->next = pv;
    *pend = pv;
 
}
 
///////////////////////////////
Node * find(Node * const pbeg,int i)
{
    Node *pv = pbeg;
    while (pv)
    {
        if (pv->a==i)break;
        {
            
            pv=pv->next;
        }
    }
        return pv;
 
 
}
 
// Удаление элемента
 
bool remove(Node **pbeg, Node **pend, int key){
if(Node *pkey = find(*pbeg, key)){
    if (pkey == *pbeg)
    { // 2
        *pbeg = (*pbeg)->next;
        (*pbeg)->prev =0;
    }
    else if (pkey == *pend){ // 3
        *pend = (*pend)->prev;
        (*pend)->next =0;}
else
{    // 4
    (pkey->prev)->next = pkey->next;
    (pkey->next)->prev = pkey->prev;
}
 
delete pkey;
return true; // 5
}
return false; 
}// 6
 
//
// Вставка элемента
 
Node * incert (Node * const pbeg, Node **pend, int key, char a){
if(Node *pkey = find(pbeg, key)){
Node *pv = new Node;
pv->a = a;
// 1 - установление связи нового узла с последующим:
pv->next = pkey->next;
// 2 - установление связи нового узла с предыдущим:
pv->prev = pkey;
// 3 - установление связи предыдущего узла с новым:
pkey->next = pv;
// 4 - установление связи последующего узла с новым:
if( pkey != *pend) (pv->next)->prev = pv;
// Обновление указателя на конец списка,
// если узел вставляется в конец:
else *pend = pv;
return pv;
}
 
return 0;
}
В программе у меня есть заголовочный файл H1.h и H2.h (структура такая cpp-h1-h2, то есть h2 входит в h1)....мне нужно вставить последние функции. Вот эти
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//
// Вставка элемента
 
Node * incert (Node * const pbeg, Node **pend, int key, char a){
if(Node *pkey = find(pbeg, key)){
Node *pv = new Node;
pv->a = a;
// 1 - установление связи нового узла с последующим:
pv->next = pkey->next;
// 2 - установление связи нового узла с предыдущим:
pv->prev = pkey;
// 3 - установление связи предыдущего узла с новым:
pkey->next = pv;
// 4 - установление связи последующего узла с новым:
if( pkey != *pend) (pv->next)->prev = pv;
// Обновление указателя на конец списка,
// если узел вставляется в конец:
else *pend = pv;
return pv;
}
 
return 0;
}
в H2.h как это сделать..просто вставляю ничего не работает.как сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2011, 13:02     Заголовочный файл. Хедер
Посмотрите здесь:

Не видит заголовочный файл - C++
что не так с кодом ? #include &lt;gl.h&gt; #include &lt;glu.h&gt; void RenderScene(void) { glClear(GL_COLOR_BOFFER_BIT); glFlush(); } ...

Заголовочный файл array - C++
Здравствуйте. Хочу определять массивы как: std::array&lt;std::array&lt;int, 10&gt;, 10&gt; arr = {}; Для этого, как я понимаю нужно подключить...

Не подключается заголовочный файл - C++
Как подключить библиотеку #include &quot;array.h&quot;,очень нужно.Заранее спасибо) вот что выдает

Добавить заголовочный файл - C++
Написал код и не могу понять, как добавить Header файл. #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class...

Не находит заголовочный файл - C++
Создал новый пустой проект в VS2013, в основном файле подключил #include &quot;header.h&quot;, там же в проекте создал этот заголовок и внутри описал...

Не компилируеться заголовочный файл. - C++
Здравствуйте! Пишу свою программу на VIsual c++ в среде VS 2010. Никак не могу найти ошибку, в одном заголовочном файле: #pragma once ...

Не подключается заголовочный файл - C++
Вот ошибка. Место, где лежат файлы. Подключаю их.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 14:11  [ТС]     Заголовочный файл. Хедер #16
Вот проект в архиве. И не надо извиняться...просто мне толком не объяснили задание. Сказали чтобы в h2.h были функции, вот я вам и говорю, как мне сказали. Я просто болею, поэтому у препода не могу спросить что надо толком сделать и как.
Вложения
Тип файла: rar Списки и структуры.rar (2.29 Мб, 8 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
01.11.2011, 14:13     Заголовочный файл. Хедер #17
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Вот проект в архиве. И не надо извиняться...просто мне толком не объяснили задание. Сказали чтобы в h2.h были функции, вот я вам и говорю, как мне сказали. Я просто болею, поэтому у препода не могу спросить что надо толком сделать и как.
- ОК скачиваю проектСори что не разобрался сразу
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
01.11.2011, 14:15     Заголовочный файл. Хедер #18
-=ЮрА=-, тут, по ходу, надо именно в h2.h прописывать функции, далее включать h2.h в h1.h и уж потом h1.h включать в main.cpp Раз препод сказал надо, значит надо...
-=ЮрА=-
Заблокирован
Автор FAQ
01.11.2011, 14:24     Заголовочный файл. Хедер #19
Как я и говорил переносить нужно всё заголовки и тела в хедер
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
H1.h
Код C++
#include "stdafx.h"//так на всякий случай
struct Node...
{
Ниже проект скомпилиный в 98-й студии, к сожалению сейчас ничего нового под рукой нету, но открыв dsw-файл Ваша студия легко конвертнёт проект
Одно замечание в H1.h всего одна строка #include "H2.h"
если далее в нём не будет кода то его можно исключить из проекта подключая в main.cpp H2.h
Миниатюры
Заголовочный файл. Хедер  
Вложения
Тип файла: rar Списки и структуры.rar (3.9 Кб, 5 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
01.11.2011, 14:26     Заголовочный файл. Хедер #20
Цитата Сообщение от BRcr Посмотреть сообщение
-=ЮрА=-, тут, по ходу, надо именно в h2.h прописывать функции, далее включать h2.h в h1.h и уж потом h1.h включать в main.cpp Раз препод сказал надо, значит надо...
- угу препод конечно редкостный логист Особенно

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Одно замечание в H1.h всего одна строка #include "H2.h"
меня просто повергло в ступор, хотя в H1 может быть описание класса который будет заюзывать H2.h - тогда это рационально, мы можем видеть пока сырой проект
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
01.11.2011, 15:55     Заголовочный файл. Хедер #21
Цитата Сообщение от BRcr Посмотреть сообщение
Use extern "C" to prevent function names from being mangled in C++ programs.
Использование extern "C" (не упускаем из вида "С") предотвращает декорирование имён в С++ программах.
Слово extern для функций не нужно, т.к. они всегда extern;

Поместить тело (не шаблонной) функции в хэдэр можно только используя ключевое слово inilne.
moscowprogramer
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 23
17.05.2012, 21:38     Заголовочный файл. Хедер #22
Здрасвуйте! извините не могли бы кое чем помочь?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2012, 22:56     Заголовочный файл. Хедер
Еще ссылки по теме:

Заголовочный файл conio.h - C++
Я новичок в С++, так что у меня небольшой вопрос. Насколько я понимаю conio.h - заголовочный файл для работы с консолью и он поддерживает...

Не находит заголовочный файл - C++
Здравствуйте, использую Code::Blocks. В Location.h не могу подключить GlobalVariables.h: fatal error: GlobalValues.h: No such file...

Заголовочный файл и реализация - C++
Visual C++. Есть файл source.cpp: #include &lt;iostream&gt; #include &quot;kek.h&quot; using namespace std;

Функция и заголовочный файл - C++
Здравствуйте. Не могу разобраться, как использовать функцию класса и заголовочный файл (может её вообще там не надо писать?). Не получается...

Заголовочный файл и тип enum - C++
Задание состоит в том, что надо программу разбить на три части: заголовочный файл Factor.h, у меня он такой получился: #include...


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

Или воспользуйтесь поиском по форуму:
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
17.05.2012, 22:56     Заголовочный файл. Хедер #23
moscowprogramer, нужна помощь - создавай тему, задавай вопросы, описывай подробненько проблемы. Сюда-то зачем писать?
Yandex
Объявления
17.05.2012, 22:56     Заголовочный файл. Хедер
Ответ Создать тему
Опции темы

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