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

Раздельная компиляция файлов в проекте. Межмодульное взаимодействие - C++

Восстановить пароль Регистрация
 
Bonch
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 3
08.10.2011, 19:47     Раздельная компиляция файлов в проекте. Межмодульное взаимодействие #1
Задан проект-модель почтового сервера
Созданы файлы: интерфейс сервера: server.h, интерфейс клиента-client.h, реализации сервера-server.cpp, клиента-client.cpp. Клиентская часть client.cpp компилируется, серверная часть server.cpp не компилируется. При компиляции файла server.cpp, компилятор ругается на строки list<client> servеd; и list<client> notservеd;. Компилятор gcc++, ide-geany.

server.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class server
{
    uint currentConnect;    //количество текущих соединений сервера
    list<client> servеd;
    list<client> notservеd;
    
    public:
    
    server()
    {
        currentConnect=0;
    }
    void run();
    void arrival();
    list<client>::iterator departure(list<client>::iterator p);
};
server.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdlib>
#include <list>
#include <iterator>
typedef unsigned int uint;
using namespace std;
#include "client.h"
#include "server.h"
 
void server::run()
{
....
}
client.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
struct message
{
    uint adress;
    unsigned long int length;
    void getAdress();
    void getLength();
};
    
class client
{
    uint timeToHead;
    uint timeToTransm;
    bool endTransm;
    bool isConnect;
    uint sMsg;
    uint mMsg;
    uint bMsg;
    list<message> letters;
    public:
    friend class server;
    client();
    void run(); 
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2011, 19:47     Раздельная компиляция файлов в проекте. Межмодульное взаимодействие
Посмотрите здесь:

Раздельная компиляция ошибка LNK2019 C++
C++ Раздельная компиляция
Раздельная компиляция файлов C++
раздельная компиляция C++
Раздельная компиляция и шаблоны C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.10.2011, 13:37     Раздельная компиляция файлов в проекте. Межмодульное взаимодействие #2
а что в client.cpp ?
Bonch
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 3
09.10.2011, 20:36  [ТС]     Раздельная компиляция файлов в проекте. Межмодульное взаимодействие #3
client.cpp

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
#include <ctime>
#include <cstdlib>
#include <list>
#include <iterator>
using namespace std;
typedef unsigned int uint;
#include "client.h"
 
client::client()
:timeToHead(4),
timeToTransm(),
endTransm(0),
isConnect(0),
sMsg(rand()%10),
mMsg(rand()%10),
bMsg(rand()%10)
{
    srand(time(0));
    for(uint i=0; i<sMsg; i++)
        
        {
            message m1;
            m1.adress=rand()%800;
            m1.length=rand()%2048;
            letters.push_back(m1);
        }
    for(uint j=0; j<mMsg; j++)
        {
            message m1;
            m1.adress=rand()%800;
            m1.length=(2+rand()%149)*1024;
            letters.push_back(m1);
        }
    for(uint k=0; k<sMsg; k++)
        {
            message m1;
            m1.adress=rand()%800;
            m1.length=(150+rand())*1024;
            letters.push_back(m1);
        }
}
 
void client::run()
{
    if(!isConnect)return;
    if(timeToHead)
    {
        timeToHead--;
        return;
    }
    if(timeToTransm)
    {
        timeToTransm--;
        return;
    }
    endTransm=1;
}
вот файл client.cpp,
я компилирую пока раздельно client.cpp и server.cpp
client.cpp компилируется, server.cpp нет. потом это всё будет обрастать функциями, программа будет усложняться, но по-любому в классе server должно быть 2 списка: обслуживаемых клиентов (servеd) и необслуживаемых (notservеd). и даже при отсутствии пока несущественных функций и переменных, компилятор уже именно на них и ругается, хотя вот например, при компиляции client.cpp всё нормально, хотя там тоже есть свой список. похоже что я что-то неправильно объявляю, не пойму что

 Комментарий модератора 
Используйте теги форматирования кода


Добавлено через 3 часа 8 минут
to accept:
спасибо за участие, разобрался сам. Тема закрыта
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
10.10.2011, 02:16     Раздельная компиляция файлов в проекте. Межмодульное взаимодействие #4
нужны ворота в заголовочных файлах
Bonch
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 3
10.10.2011, 09:20  [ТС]     Раздельная компиляция файлов в проекте. Межмодульное взаимодействие #5
to accept:
спасибо за участие, разобрался. Тема закрыта
Yandex
Объявления
10.10.2011, 09:20     Раздельная компиляция файлов в проекте. Межмодульное взаимодействие
Ответ Создать тему
Опции темы

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