Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
1

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

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

Author24 — интернет-сервис помощи студентам
Всем привет!) У меня есть программа. Вот она.
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2011, 13:02
Ответы с готовыми решениями:

Заголовочный файл
Здравствуйте. Помогите, пожалуйста, разобраться с заголовочными файлами и функциями-&quot;друзьями&quot;....

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

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

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

22
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
01.11.2011, 13:09 2
на что ругается компилятор/программа, когда "ничего не работает" ?
да, и приведите текст обоих заголовочных файлов...
0
Заблокирован
Автор FAQ
01.11.2011, 13:14 3
Цитата Сообщение от KOPC1886 Посмотреть сообщение
мне нужно вставить последние функции. Вот эти
- ниже приведено тело 1-й функции
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Node * incert (Node * const pbeg, Node **pend, int key, char a)
В H1.h допиши в список заголовков функций
C++
1
Node * incert (Node * const pbeg, Node **pend, int key, char a);
В H1.срр впиши
тело функии
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;
}

0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 13:24  [ТС] 4
У меня нету h1.cpp
В h1.h написан только #include "H2.h", а в H2.h сами функции, что я писал выше.

Вот что за ошибки
1>------ Build started: Project: Списки и структуры, Configuration: Debug Win32 ------
1>Compiling...
1>Списки и структуры.cpp
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(5) : error C2143: syntax error : missing ';' before '*'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(5) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(6) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(7) : error C2065: 'pv' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(7) : error C2061: syntax error : identifier 'Node'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(8) : error C2065: 'pv' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(8) : error C2227: left of '->a' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(9) : error C2065: 'pv' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(9) : error C2227: left of '->next' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(10) : error C2065: 'pv' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(10) : error C2227: left of '->prev' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(12) : error C2065: 'pv' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(17) : error C2065: 'pend' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(17) : error C2062: type 'char' unexpected
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(18) : error C2143: syntax error : missing ';' before '{'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(18) : error C2447: '{' : missing function header (old-style formal list?)
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(29) : error C2143: syntax error : missing ';' before '*'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(29) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(29) : error C2086: 'int Node' : redefinition
1> d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(5) : see declaration of 'Node'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(29) : error C2059: syntax error : 'const'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(30) : error C2143: syntax error : missing ';' before '{'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(30) : error C2447: '{' : missing function header (old-style formal list?)
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(47) : error C2065: 'pbeg' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(47) : error C2065: 'pend' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(47) : error C2062: type 'int' unexpected
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(47) : error C2143: syntax error : missing ';' before '{'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(47) : error C2447: '{' : missing function header (old-style formal list?)
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(72) : error C2143: syntax error : missing ';' before '*'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(72) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(72) : error C2086: 'int Node' : redefinition
1> d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(5) : see declaration of 'Node'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(72) : error C2059: syntax error : 'const'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(72) : error C2143: syntax error : missing ';' before '{'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(72) : error C2447: '{' : missing function header (old-style formal list?)
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(19) : error C2143: syntax error : missing ';' before '*'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(19) : error C2086: 'int Node' : redefinition
1> d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(5) : see declaration of 'Node'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(20) : error C2065: 'pend' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(20) : error C2062: type 'char' unexpected
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(21) : error C2143: syntax error : missing ';' before '*'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(21) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(21) : error C2086: 'int Node' : redefinition
1> d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(5) : see declaration of 'Node'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(21) : error C2059: syntax error : 'const'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(22) : error C2065: 'pbeg' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(22) : error C2065: 'pend' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(22) : error C2062: type 'int' unexpected
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(23) : error C2143: syntax error : missing ';' before '*'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(23) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(23) : error C2086: 'int Node' : redefinition
1> d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\h2.h(5) : see declaration of 'Node'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(23) : error C2059: syntax error : 'const'
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(27) : error C2065: 'pbeg' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(28) : error C2065: 'pend' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(28) : error C2065: 'pbeg' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(37) : error C2065: 'pend' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(37) : error C3861: 'add': identifier not found
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(54) : error C2065: 'pv' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(54) : error C2065: 'pbeg' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(58) : error C2065: 'pv' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(61) : error C2065: 'pv' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(61) : error C2227: left of '->a' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(62) : error C2065: 'pv' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(62) : error C2065: 'pv' : undeclared identifier
1>d:\documents and settings\дом\мои документы\visual studio 2008\projects\списки и структуры\списки и структуры\списки и структуры.cpp(62) : error C2227: left of '->next' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>Build log was saved at "file://d:\Documents and Settings\ДОМ\Мои документы\Visual Studio 2008\Projects\Списки и структуры\Списки и структуры\Debug\BuildLog.htm"
1>Списки и структуры - 63 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
0
Заблокирован
Автор FAQ
01.11.2011, 13:34 5
Цитата Сообщение от KOPC1886 Посмотреть сообщение
У меня нету h1.cpp
В h1.h написан только #include "H2.h", а в H2.h сами функции, что я писал выше.
Тогда вбейте тело вашей
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Node * incert (Node * const pbeg, Node **pend, int key, char a){...
после хедеров...
C++
1
2
3
4
5
#include "stdafx.h"
#include <iostream>
#include "H1.h"
using namespace std;
//<- Вот сюда вставьте всё тело
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 13:38  [ТС] 6
Препод мне сказал что не нужно добавлять h1.cpp
Нужно перенести все функции в хедер h2
0
Заблокирован
Автор FAQ
01.11.2011, 13:41 7
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Нужно перенести все функции в хедер h2
- функция 1, какие все функции???KOPC1886, можно попросить выложить весь проект. Если у вас нет никакого lib-файла, а в H1.h записаны только заголовки функций то без H1.cpp - компилятор пошлёт вас с тем что видит объявление но не видит тел функций...
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 13:46  [ТС] 8
В H1 ЗАПИСАНО ТОЛЬКО #include "H2.h" там больше ничего нету. он пуст.
0
Заблокирован
Автор FAQ
01.11.2011, 13:46 9
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Нужно перенести все функции в хедер h2
- введите h2.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
#include "stdafx.h"
        #include "H1.h"
//
// Вставка элемента
 
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;
}
В main.cpp подключение хедеров такое
C++
1
2
3
#include "stdafx.h"
#include <iostream>
#include "H2.h"
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 13:52  [ТС] 10
а мне нужно что бы было так
C++
1
2
3
#include "stdafx.h"
#include <iostream>
#include "H1.h"
а в H1 написано #include "H1.h" и в h2 все функции вот эти
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
01.11.2011, 13:58 11
эт какой-то вложенный #include получается... зачем вот только?
в таком случае, вроде, спецификатор extern перед объявлением и определением функции помогает
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 14:01  [ТС] 12
как сделать это?

Добавлено через 1 минуту
так препод задал..у него спрашивайте) Что за спецификатор? Можете написать куда его писать и как? на моем бы примере


Вложенность вот такая cpp->h1.h->h2.h
0
Заблокирован
Автор FAQ
01.11.2011, 14:06 13
KOPC1886, всё въехал функции в хедер вбить, в задание изначально не вчитался!
Сейчас!!!
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
01.11.2011, 14:07 14
Category

Storage class specifiers

Syntax

extern <data definition> ;
[extern] <function prototype> ;
Description

Use the extern modifier to indicate that the actual storage and initial value of a variable, or body of a function, is defined in a separate source code module. Functions declared with extern are visible throughout all source files in a program, unless you redefine the function as static.

The keyword extern is optional for a function prototype.

Use extern "C" to prevent function names from being mangled in C++ programs.

Also, extern templates allow you to define templates that are not instantiated in a translation unit. Using extern templates thus reduces both compilation time and the size of the compiled module. The extern template feature is part of the new C++0x standard.
C++
1
extern Node * incert (Node * const pbeg, Node **pend, int key, char a);
0
Заблокирован
Автор FAQ
01.11.2011, 14:10 15
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
#include "stdafx.h"
#include <iostream>
#include "H1.h"
using namespace std;
 
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;
}
H1.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
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
#include "stdafx.h"//так на всякий случай
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);
 
//
// Ôîðìèðîâàíèå ïåðâîãî ýëåìåíòà
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;
}
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 14:11  [ТС] 16
Вот проект в архиве. И не надо извиняться...просто мне толком не объяснили задание. Сказали чтобы в h2.h были функции, вот я вам и говорю, как мне сказали. Я просто болею, поэтому у препода не могу спросить что надо толком сделать и как.
Вложения
Тип файла: rar Списки и структуры.rar (2.29 Мб, 9 просмотров)
0
Заблокирован
Автор FAQ
01.11.2011, 14:13 17
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Вот проект в архиве. И не надо извиняться...просто мне толком не объяснили задание. Сказали чтобы в h2.h были функции, вот я вам и говорю, как мне сказали. Я просто болею, поэтому у препода не могу спросить что надо толком сделать и как.
- ОК скачиваю проектСори что не разобрался сразу
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 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
Миниатюры
Заголовочный файл. Хедер  
Вложения
Тип файла: rar Списки и структуры.rar (3.9 Кб, 6 просмотров)
0
Заблокирован
Автор 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
01.11.2011, 14:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2011, 14:26
Помогаю со студенческими работами здесь

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

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

Заголовочный файл
Написал в заголовочном файле вот такой код: #ifndef SALES_DATA_H #define SALES_DATA_H #include...

Заголовочный файл
Исходный файл main.cpp #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;cstring&gt; #include...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru