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

Регистрация функций - C++

Восстановить пароль Регистрация
 
 
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
08.02.2013, 23:00     Регистрация функций #1
Здравствуйте. Я разрабатываю модуль под игру.

Мой проект достаточно большой.

Вот у меня вопрос. У меня есть главный файл cpp

Он регистрирует функцию момента,когда игрок заходит на сервер,тобиш у меня в main.cpp

Функция:

C++
1
2
3
4
void Connect( edict_t *Player )
{
 //code..
}
Например использую:

C++
1
2
3
4
5
6
bool g_bsIsConnected[ 33 ] = false;
 
void Connect( edict_t *Player )
{
 g_bsIsConnected[ Player ] = true;
}
Так вот,сама функция Connect зарегистрирована только в main.cpp

А мне нужно использовать функцию Connect в других срр файлах проекта,где мне надо пользоваться ею,как на примере выше.Может вы скажите,делай всё в одном файле или типа быдло кода

C++
1
2
3
4
5
void Connect( edict_t *pPlayer )
{
 Connect_fot_othetcpp1( pPlayer );
 Connect_fot_othetcpp2( pPlayer );
}
объявлять и использовать эти трансфер функции в других срр файлах,но мне бы хотелось,чтоб была возможность их регистрировать как-то,что можно сделать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
08.02.2013, 23:49     Регистрация функций #21
pEntity, ну так понятно. Вы написали _реализацию_, а нужно только прототипы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
08.02.2013, 23:51  [ТС]     Регистрация функций #22
Я очень рад,что вы поняли,моих знаний не хватило дать максимально понятную задачу.

Но вот как мне быть ?
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
08.02.2013, 23:54     Регистрация функций #23
pEntity, напишите просто extern void A();
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
08.02.2013, 23:56  [ТС]     Регистрация функций #24
Я вас не понял.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
08.02.2013, 23:58     Регистрация функций #25
Цитата Сообщение от pEntity Посмотреть сообщение
Мне просто надо её использовать в других срр файлах,для удобства.
Чем не подходит классический вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//connect.h
#pragma once
void Connect( edict_t *Player ); // без кода
 
//connect.cpp
#include "connect.h"
void Connect( edict_t *Player )
{
// code
}
 
//somefile.cpp - этим файлом может быть и мейн, и что угодно
#include "connect.h"
...
Connect(Player);
...
А почему эта функция живет не в классе?
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
08.02.2013, 23:58     Регистрация функций #26
pEntity, у вас есть функция, которую вы используете в нескольких срр. Допустим, эта функция выглядит так:

void A(){ ... }

тогда в срр напишите extern void A();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2013, 00:15     Регистрация функций
Еще ссылки по теме:

C++ Регистрация приложения к протоколу url
C++ Вызов функций внутри других функций
Регистрация в программе C++

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

Или воспользуйтесь поиском по форуму:
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
09.02.2013, 00:15  [ТС]     Регистрация функций #27
I.M., вы будете вызывать Connect в других срр,который в мэйне,а я как бы сказать.. хочу в этих самих срр использовать этот самый Connect

То есть:

1.cpp
C++
1
2
3
bool g_bs1 = false;
 
void Connect( edict_t *Player ) { g_bs1 = true; }
________________

2.cpp

C++
1
2
3
bool g_bs2 = false;
 
void Connect( edict_t *Player ) { g_bs2 = true; }
И т.д.

Я не хочу так делать всё в одном срр файле,поэтому и думаю,что можно создать какую-то регистрацию,где в мэйн файле я смогу продумать систему регистрации,где в других срр файлах,в какой нибудь функции взять и зарегать мне нужные функции

1.cpp
C++
1
2
Register( Connect , Function_Connect );
Register( Disconnect , Function_Disconnect );
И использовать

C++
1
2
void Function_Connect( edict_t *pPlayer ){  }
void Function_Disconnect( edict_t *pPlayer ){  }
2.срр

C++
1
2
Register( Connect , Function_Connect );
Register( Disconnect , Function_Disconnect );
_______

C++
1
2
void Function_Connect( edict_t *pPlayer ){  }
void Function_Disconnect( edict_t *pPlayer ){  }
Вы может спросите,а в какой функции я зарегаю

C++
1
2
Register( Connect , Function_Connect );
Register( Disconnect , Function_Disconnect );
Я думаю в мэйне я создам класс в функции

C++
1
void load()
Которая в нем загружается и сделаю для всех других срр типа

C++
1
2
3
4
plugin_init()
{
 
}
Где и будет уже регистрация моих функций.
Yandex
Объявления
09.02.2013, 00:15     Регистрация функций
Ответ Создать тему
Опции темы

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