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

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

Войти
Регистрация
Восстановить пароль
 
Letfar
0 / 0 / 1
Регистрация: 10.12.2011
Сообщений: 47
#1

Передача адреса функции в функцию (Класы) - C++

23.08.2013, 12:28. Просмотров 481. Ответов 4
Метки нет (Все метки)

Пример:
C++
1
2
3
4
5
// Общая функция increment
void Test::IncBaseFunction ( void (Test::*IncFunct)() ) 
{ 
// Как правильно передать и вызвать IncFunct ? 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2013, 12:28     Передача адреса функции в функцию (Класы)
Посмотрите здесь:
C++ Передача в процедуру адреса функции
Передача функции в функцию? C++
C++ Передача функции в функцию?
Передача элементов с функции в функцию C++
Передача переменной из функции в функцию C++
C++ Передача массива в функцию и из функции
Передача двумерного массива из функции в функцию C++
Передача функции из одного класса в функцию другого C++
Структуры и функции. Передача указателя на структуру в функцию C++
C++ Передача в функцию и возврат из функции динамической матрицы
Передача в функцию массива, и в функции передать массив не получаеться C++
Передача функции (как параметра) в функцию унаследоваемого класса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.08.2013, 12:33     Передача адреса функции в функцию (Класы) #2
Цитата Сообщение от Letfar Посмотреть сообщение
Как правильно передать
C++
1
2
Test test;
test.IncBaseFunction(&Test::MyFunc);
Добавлено через 42 секунды
Цитата Сообщение от Letfar Посмотреть сообщение
Как правильно вызвать IncFunct
C++
1
2
3
4
void Test::IncBaseFunction ( void (Test::*IncFunct)() ) 
{ 
    (this->*IncFunct)();
}
Letfar
0 / 0 / 1
Регистрация: 10.12.2011
Сообщений: 47
23.08.2013, 13:18  [ТС]     Передача адреса функции в функцию (Класы) #3
А если бы функция Test::*IncFunct() принимала параметры, например Test::*IncFunct(int var) - можно ли как-то их использовать в IncBaseFunction и если да, то как?
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.08.2013, 13:21     Передача адреса функции в функцию (Класы) #4
C++
1
2
3
4
5
6
7
void Test::IncBaseFunction ( void (Test::*IncFunct)(int), int j ) 
{ 
    int i = 100500;
    (this->*IncFunct)(i);
    (this->*IncFunct)(42);
    (this->*IncFunct)(j);
}
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,354
23.08.2013, 13:24     Передача адреса функции в функцию (Класы) #5
Разумеется. Только нужно эти параметры передать:
C++
1
2
3
4
5
6
void Test::IncBaseFunction ( void (Test::*IncFunct)(int), int var ) 
{
    var += 20;
    .......
    (this->*IncFunct)(var);
}
Yandex
Объявления
23.08.2013, 13:24     Передача адреса функции в функцию (Класы)
Ответ Создать тему
Опции темы

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