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

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

Войти
Регистрация
Восстановить пароль
 
QGuest
8 / 8 / 0
Регистрация: 08.01.2013
Сообщений: 85
#1

Передача перегруженной функции как аргумента - C++

10.06.2014, 21:27. Просмотров 192. Ответов 1
Метки нет (Все метки)

Есть 3 метода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static int readInteger() {
    double temp = readDouble();
    int result = temp;
    if (result != temp) throw new invalid_argument("Input value isn`t correct.");
    else return result;
}
 
static int readInteger(int defaultValue) {
    try { return readInteger(); }
    catch (invalid_argument* ex) { delete ex; return defaultValue; }
}
 
template <typename T>
static T readValueLoop(function<T(void)> func, string text = "", string error = " = incorrect.") {
    T result;
    while (true) {
        try { result = func(); break; }
        catch (invalid_argument* ex) { delete ex; }
    }
    return result;
}
Как в метод readValueLoop передать метод readInteger(void)?
C++
1
int index = System::getValueLoop<int>(System::readInteger);
Ибо висуал ругается, типо не знает какую именно функцию надо передать... Но вроде ясно написано: function<T(void)> - именно с void.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2014, 21:27     Передача перегруженной функции как аргумента
Посмотрите здесь:
C++ Функция рассчета определенного интеграла. (Передача функции как аргумента)
C++ Передача функции в качестве аргумента массив
C++ Передача массива в качестве аргумента функции
C++ Передача объекта в качестве аргумента функции (метода)
C++ Передача двумерного массива в качестве аргумента функции
C++ Передача метода класса в качестве аргумента внешней функции
C++ Возможна ли передача двумерного массива в качестве аргумента функции по ссылке
C++ Создание перегруженной функции
C++ Pow: нет перегруженной функции
C++ сравнение строк в перегруженной функции
C++ Найти ошибку в перегруженной функции
C++ Неоднозначный вызов перегруженной функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.06.2014, 22:21     Передача перегруженной функции как аргумента #2
C++
1
2
std::function<int(void)> f = static_cast<int(*)(void)>( readInteger );
readValueLoop( f /* ... */ );
Yandex
Объявления
10.06.2014, 22:21     Передача перегруженной функции как аргумента
Ответ Создать тему
Опции темы

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