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

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

Войти
Регистрация
Восстановить пароль
 
 
pEntity
13 / 8 / 1
Регистрация: 12.12.2012
Сообщений: 442
#1

Переобъявление функции - C++

15.12.2012, 19:38. Просмотров 818. Ответов 20
Метки нет (Все метки)

Не могли бы вы рассказать об архитектуре дополнительных библиотек?
У меня есть главный файл:

main_function.cpp

Только в нем регистрируется нужная мне функция:

C++
1
2
3
4
void main_spawn( void * phis )
{
      // code 
}
Далее у меня есть:

main_function_api.cpp
main_function_api2.cpp

Мне необходимо в этих библиотеках использовать функцию void main_function( void * phis ) из meta_function.cpp,но мы тут не можем регистрировать ее,поэтому в main_function( void * phis ) я добавляю две функции:

C++
1
2
3
4
5
void main_function( void * phis )
{
    main_function_api( phis );
    main_function_api2( phis );
}
Объявлю в meta_function.h

C++
1
2
void meta_function_api( void * phis );
void meta_function_api2( void * phis );
Буду его подключать и использовать эти функции в моих api файлах,но мне кажется это неправильно,если я использую return в meta_function_api , то meta_function_api2 не выполнится,то как же правильней использовать одну функцию для разных файлов,которая исполняется 1 раз,а функции должна выполнять разные,в других библиотеках.
Возможно нужно создать какую либо регистрацию с главной функции,но как?

Что посоветуете?
[/QUOTE]

То есть выражаясь проще,

C++
1
2
3
4
void main_spawn( void * phis )
{
      // code 
}
Как вызывать его в разных библиотеках,если он зарегистрирован только в главной билотеке ?


Если сделать так:


C++
1
2
3
4
void main_spawn( void * phis )
{
      spawn( phis );
}
Объявлять в других файлах spawn( void * phis ); и использовать,будет переобъявление функции.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 19:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переобъявление функции (C++):

Переобъявление стандартных типов C++ - C++
Не давно в голову пришла идея переобъявить стандартные типы через union, это может дать возможность обращения к байтам или битам числа, вот...

Функции. Как после одного возвратного значения функции отталкиваться от возврата другой функции - C++
Написал код, в котором 2 функции одна возвращает стринговое значение, вторая должна бы вернуть значение, отталкиваясь от первой. Возможно...

Переобъявление массивов - C#
Не уверен, что правильно назвал тему, но ничего другого не придумалось. Вопрос дилетанта-практика, не успевшего освоить теоретические...

Переобъявление массива сохраняя данные в нём. - C#
Здравствуйте, как мне в С# переобъявить одномерный массив, добавив в него один элемент и сохранить все значения в других элементах? И как...

excel. создать таблицу значение кусочно-непрерывной функции y на интервале [xmin; xmax] с шагом h, для расчета функции y используя логические функции - Delphi

Для функции y=f(x) получить таблицу значений и график этой функции на отрезке - Pascal ABC
Для функции y=f(x) получить таблицу значений и график этой функции на отрезке. Количество точек на промежутке задается пользователем....

20
pEntity
13 / 8 / 1
Регистрация: 12.12.2012
Сообщений: 442
16.12.2012, 17:19  [ТС] #16
C
1
2
3
4
5
6
7
void ClientPutInServer( edict_t *pEntity )
{
    ClearBits( g_bsIsAlive,  ENTINDEX( pEntity )  );
    SetBits( g_bsIsConnected, ENTINDEX( pEntity )  );
    ClearBits( g_bsIsZombie, ENTINDEX( pEntity )  );
    ClearBits( g_bsIsHostZombie, ENTINDEX( pEntity )  );
}
переименовать ClientPutInServer ? А как оно поймет,что нужно вызывать сам ClientPutInServer
0
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
16.12.2012, 17:30 #17
Ест две функции x и y, там где нужно вызывать x, вызывай x, где нужно вызывать y вызывай y. Всё!
0
pEntity
13 / 8 / 1
Регистрация: 12.12.2012
Сообщений: 442
16.12.2012, 17:49  [ТС] #18
Нет,функция одна.

void ClientPutInServer( edict_t *pEntity )

Она в таком виде зарегана в meta_api и ни как иначе не может быть.

Мне её действие нужно отловить просто в разных файлах..А не только в самом meta_api

Покажите,что вы имеете в виду в прикрепленном архиве выше,я не понимаю.

Добавлено через 13 минут
Так правильно http://pastebin.com/deMyycfq ,но я думал можно без создания доп функций..Одну использовать как нибудь.
0
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
16.12.2012, 18:08 #19
ну вопрос решён? Функцию нельзя переопределить больше одного раза в проекте, это понятно?
0
pEntity
13 / 8 / 1
Регистрация: 12.12.2012
Сообщений: 442
16.12.2012, 18:15  [ТС] #20
Понятно. То есть мое решение полностью гуманное ? Мне кажется можно как-то сделать по умней.

Если у меня 20 файлов где нужна эта функция,что мне 20 раз писать

void func2( edict_t *pEntity );
void func3( edict_t *pEntity );
void func4( edict_t *pEntity );

и т.д.

Какой-то прям быдло код.
0
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
16.12.2012, 18:29 #21
Так и писать. Люди обычно так делают: помещают это
C++
1
void func2( edict_t *pEntity );
в заголовочный файл fail.h, а потом подсоединяют его к *cpp файлу
C++
1
#include "fail.h"
по-другому никак.
1
16.12.2012, 18:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 18:29
Привет! Вот еще темы с ответами:

Значение функции от пересечения множество в равно пересечению значений функции от множеств - Логика и множества
Аллах велик! Нужно доказать вот эту штуку: \phi \left(\bigcap_{0}^{n}Ai \right) = \bigcap_{0}^{n} \phi \left(Ai \right), i\in \left(0,...n...

Найти значения функции в заданных точках и сравнить с истинными значениями функции - MathCAD
Доброго времени суток друзья. линейная интерполюция , интерполюция сплайнами , глобальная интерполюция, метод наименьших квадратов ...

Найти среднее арифметическое значений функции f(x) в точках а, b, (a+b)/2, используя обращение к функции - C++
Найти среднее арифметическое значений функции f(x) в точках а, b, (a+b)/2, используя обращение к функции. f=arctgx+ln^2 x^2 Нужно...

Процедуры и функции: вычислить значения функции на заданном отрезке с заданным шагом - Pascal
ребята, помогите, пожалуйста! Срочно нужна такая программка по выделенному варианту... у самой никак не получается( очень рассчитываю...


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

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

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