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

Сохранение функций в переменных и дальнейший их вызов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поменять местами столбцы в массиве http://www.cyberforum.ru/cpp-beginners/thread615385.html
Дан массив размером nxn, насколько я понял динамический. Если количество стобцов четное то поменять столбцы по правилу: первый со вторым, третий с четвертым и так далее. Если количество столбцов...
C++ mutex День добрый. Прошу объяснить мне дураку m_hShared = OpenMutex(MUTEX_ALL_ACCESS, TRUE, L"FileMutexEx"); if(m_hShared) WaitForSingleObject(m_hShared, INFINITE); ... http://www.cyberforum.ru/cpp-beginners/thread615369.html
Ищу информацию про scanf_s C++
Друзья, киньте кто-нибудь ссылку про scanf_s Для ссылок есть поисковые системы!
Sublime Text 2 и C++ C++
Здравствуйте, уважаемые форумчане! Есть текстовый редактор кода Sublime Text 2 и IDE под названием wxDev-C++ 7.4.2.569! Возможно ли создать плагин или что-нибудь другое, чтобы набранный в Sublime...
C++ Шаблон класса set (множество) http://www.cyberforum.ru/cpp-beginners/thread615308.html
Требуется создать шаблон класса множество... а я без божно туплю, у самого не получилось... нашел на вашем форуме следующий код... исправил вроде робит, но ругается при инициализации самого класса...
C++ Как работать с датой? Всем привет! Собственно возник интересный вопрос: как работать с датой в С++? Какой тип данных использовать?чтобы можно было сравнить, перезаписать,вводить в удобном для пользователя формате...... подробнее

Показать сообщение отдельно
KilloN
3 / 3 / 0
Регистрация: 27.05.2012
Сообщений: 26
27.06.2012, 23:31  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
Указатель на функцию, хорошее дело, если совпадают сигнатуры (тип возвращаемого значения, тип и порядок следования аргументов).
Но можно же использовать функции с переменным числом аргументов))
Это частично решает проблему))

Но я нашёл решение
Если исп. ссылку на тип void...
Есть указатель на ф-ю func будет служить только для того чтобы хранить указатель, то можно вызвать абсолютно любую функцию.

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
#include <iostream>
 
void inc(int& val)
{
    ++val;
}
 
int inc2(int val)
{
    return ++val;
}
 
int main()
{
    int a = 10;
    int b = 66;
 
    void (*func);
    func = &inc;
 
    ((void (__cdecl *)(int&))func)(a);
 
    std::cout << a << std::endl;
 
    func = &inc2;
    b += ((int (__cdecl *)(int))func)(a);
 
    std::cout << a << std::endl;
    std::cout << b << std::endl;
 
    system("pause");
    return 0;
}
}
Ахренеть я тут намудрил
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru