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

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

Войти
Регистрация
Восстановить пароль
 
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
#1

Передача функции в аргумент - C++

26.12.2013, 16:59. Просмотров 225. Ответов 1
Метки нет (Все метки)

Есть три функции:

C++
1
2
3
void MainMenu();
void MainMenu_MilkMenu();
bool ErrorMenu(void (*pf)());
Все прототипы находятся в заголовочном файле, объявления MainMenu и ErrorMenu в 1 файле исходного кода, а MainMenu_MilkMenu в другом, и всё это находится в пространстве имен ns_stcal.

В операторе ErrorMenu(ns_stcal::MainMenu_MilkMenu()) MSVS пишет: аргумент типа void несовместим с параметром типа void (*pf)().

Помогите пожалуйста, не пойму в чем дело!

Вот функция ErrorMenu:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool ErrorMenu(void pf())
{
    char submenu_choice;
    cout << "Введено неверное значение. Попробовать снова?\n";
    cout << "y/n (Да/нет)\n\n";
    cin >> submenu_choice;
    switch (submenu_choice)
    {
    case 'y':
    case 'Y':
    case 'Н':
    case 'н': (*pf)(); break;
    default: return EXIT_SUCCESS;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2013, 16:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача функции в аргумент (C++):

Передача потока (текущ.позиции курсора в файле) как аргумент функции - C++
Всем привет! Столкнулся с такой проблемой, Конструкция довольно тяжелая для меня. Мне нужно чтобы я открывал файл для чтения, затем...

Передача числа через аргумент командной строки - C++
Здравствуйте. Мне необходимо передать число в программу, а затем работать с этим числом. Проблема состоит в том, что при...

Вычислить значение функции аргумент которой вычисляется из другой кусочно заданной функции - C++
Решите программу то я не знаю как:hysteric: Вычислить значение y в зависимости от выбранной функции \varphi (x), аргумент которой...

Безымянный аргумент функции - C++
функция принимает аргумент, но у него нет имени void f(int) { cout &lt;&lt; &quot;Hello world!&quot;; } int main() { int n =...

Не читается аргумент функции - C++
void recursReverse(char* str, size_t len) { static size_t len2 = len; while (len2 &gt; 1) { std::swap(*str, *(str + len2 - 1)...

Непонятный аргумент функции - C++
Кто-нибудь может подсказать, что принимает такая функция в качестве аргумента? void foo(int (**i)(double)) { ..... }

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
falko
33 / 33 / 16
Регистрация: 09.12.2013
Сообщений: 63
26.12.2013, 18:01 #2
C++
1
 ErrorMenu(ns_stcal::MainMenu_MilkMenu())
'ns_stcal::MainMenu_MilkMenu()' вы вызываете функцию, а не передаете указатель на нее - уберите скобки на конце 'ns_stcal::MainMenu_MilkMenu'
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2013, 18:01
Привет! Вот еще темы с ответами:

Опциональный ссылочный аргумент функции - C++
Некоторые аргументы функции можно сделать опциональными, просто поставив значение по умолчанию, а затем проверяя, изменилось ли оно : ...

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

Auto как аргумент функции - C++
Возможно ли объявить параметр функции как auto? void func(auto pt); //...

Аргумент argv в функции main() - C++
Здравствуйте. Возникли некоторые непонимания при работе с аргументом argv и указателями в целом. Мне сказали, что, при передаче...


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

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

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