Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

01.11.2011, 13:02. Просмотров 2351. Ответов 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 как это сделать..просто вставляю ничего не работает.как сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2011, 13:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заголовочный файл. Хедер (C++):

Заголовочный файл. - C++
Доброго времени суток. Вопрос возник, по скольку в лекции по программированию ничего нет) я вроде как поняла что такое заголовочный...

Заголовочный файл - C++
Доброго времени суток! Ситуация такая: хочу, исходя из функции, создать заголовочный файл. Но, увы, не умею создавать их. Хотелось бы...

Заголовочный файл - C++
Исходный файл main.cpp #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;cstring&gt; #include &quot;studio.h&quot; using namespace std; ...

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

Заголовочный файл - C++
Написал в заголовочном файле вот такой код: #ifndef SALES_DATA_H #define SALES_DATA_H #include &lt;string&gt; struct Sales_Data { ...

Заголовочный файл - C++
Здравствуйте. Помогите, пожалуйста, разобраться с заголовочными файлами и функциями-&quot;друзьями&quot;. Например: main.cpp #include &quot;A.h&quot; ...

22
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 14:11  [ТС] #16
Вот проект в архиве. И не надо извиняться...просто мне толком не объяснили задание. Сказали чтобы в h2.h были функции, вот я вам и говорю, как мне сказали. Я просто болею, поэтому у препода не могу спросить что надо толком сделать и как.
0
Вложения
Тип файла: rar Списки и структуры.rar (2.29 Мб, 8 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
01.11.2011, 14:13 #17
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Вот проект в архиве. И не надо извиняться...просто мне толком не объяснили задание. Сказали чтобы в h2.h были функции, вот я вам и говорю, как мне сказали. Я просто болею, поэтому у препода не могу спросить что надо толком сделать и как.
- ОК скачиваю проектСори что не разобрался сразу
0
BRcr
4009 / 2298 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
01.11.2011, 14:15 #18
-=ЮрА=-, тут, по ходу, надо именно в h2.h прописывать функции, далее включать h2.h в h1.h и уж потом h1.h включать в main.cpp Раз препод сказал надо, значит надо...
0
-=ЮрА=-
Заблокирован
Автор 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
0
Миниатюры
Заголовочный файл. Хедер  
Вложения
Тип файла: 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 - тогда это рационально, мы можем видеть пока сырой проект
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 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.
0
moscowprogramer
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 23
17.05.2012, 21:38 #22
Здрасвуйте! извините не могли бы кое чем помочь?
0
BRcr
4009 / 2298 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
17.05.2012, 22:56 #23
moscowprogramer, нужна помощь - создавай тему, задавай вопросы, описывай подробненько проблемы. Сюда-то зачем писать?
0
17.05.2012, 22:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2012, 22:56
Привет! Вот еще темы с ответами:

Заголовочный файл - C++
Опишите подробно, пожалуйста , как создается заголовочный файл в среде 2010 . С++

Заголовочный файл - C++
Для чево етот файл используется??? Как ево использовать в своей программе помогите хочу разобраться)

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

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


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

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

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