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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 13:02     Заголовочный файл. Хедер #1
Всем привет!) У меня есть программа. Вот она.
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++
Заголовочный файл .h C++
C++ Заголовочный файл
C++ Заголовочный файл
Заголовочный файл C++
Заголовочный файл C++
C++ Добавить заголовочный файл
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BRcr
 Аватар для BRcr
4004 / 2293 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
01.11.2011, 13:09     Заголовочный файл. Хедер #2
на что ругается компилятор/программа, когда "ничего не работает" ?
да, и приведите текст обоих заголовочных файлов...
-=ЮрА=-
Заблокирован
Автор 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;
}

KOPC1886
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 ==========
-=ЮрА=-
Заблокирован
Автор 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;
//<- Вот сюда вставьте всё тело
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 13:38  [ТС]     Заголовочный файл. Хедер #6
Препод мне сказал что не нужно добавлять h1.cpp
Нужно перенести все функции в хедер h2
-=ЮрА=-
Заблокирован
Автор FAQ
01.11.2011, 13:41     Заголовочный файл. Хедер #7
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Нужно перенести все функции в хедер h2
- функция 1, какие все функции???KOPC1886, можно попросить выложить весь проект. Если у вас нет никакого lib-файла, а в H1.h записаны только заголовки функций то без H1.cpp - компилятор пошлёт вас с тем что видит объявление но не видит тел функций...
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 13:46  [ТС]     Заголовочный файл. Хедер #8
В H1 ЗАПИСАНО ТОЛЬКО #include "H2.h" там больше ничего нету. он пуст.
-=ЮрА=-
Заблокирован
Автор 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"
KOPC1886
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 все функции вот эти
BRcr
 Аватар для BRcr
4004 / 2293 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
01.11.2011, 13:58     Заголовочный файл. Хедер #11
эт какой-то вложенный #include получается... зачем вот только?
в таком случае, вроде, спецификатор extern перед объявлением и определением функции помогает
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 14:01  [ТС]     Заголовочный файл. Хедер #12
как сделать это?

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


Вложенность вот такая cpp->h1.h->h2.h
-=ЮрА=-
Заблокирован
Автор FAQ
01.11.2011, 14:06     Заголовочный файл. Хедер #13
KOPC1886, всё въехал функции в хедер вбить, в задание изначально не вчитался!
Сейчас!!!
BRcr
 Аватар для BRcr
4004 / 2293 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 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);
-=ЮрА=-
Заблокирован
Автор 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;
}
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.11.2011, 14:11  [ТС]     Заголовочный файл. Хедер #16
Вот проект в архиве. И не надо извиняться...просто мне толком не объяснили задание. Сказали чтобы в h2.h были функции, вот я вам и говорю, как мне сказали. Я просто болею, поэтому у препода не могу спросить что надо толком сделать и как.
Вложения
Тип файла: rar Списки и структуры.rar (2.29 Мб, 7 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
01.11.2011, 14:13     Заголовочный файл. Хедер #17
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Вот проект в архиве. И не надо извиняться...просто мне толком не объяснили задание. Сказали чтобы в h2.h были функции, вот я вам и говорю, как мне сказали. Я просто болею, поэтому у препода не могу спросить что надо толком сделать и как.
- ОК скачиваю проектСори что не разобрался сразу
BRcr
 Аватар для BRcr
4004 / 2293 / 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 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 14:26     Заголовочный файл. Хедер
Еще ссылки по теме:

C++ Заголовочный файл
Заголовочный файл C++
Не подключается заголовочный файл C++
Функция и заголовочный файл C++
Не находит заголовочный файл C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор 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 - тогда это рационально, мы можем видеть пока сырой проект
Yandex
Объявления
01.11.2011, 14:26     Заголовочный файл. Хедер
Ответ Создать тему
Опции темы

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