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

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

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

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

26.12.2013, 16:59. Просмотров 221. Ответов 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++
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)) { ..... }

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

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

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

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

Аргумент функции - массив строк - C++
есть массив строк string *conns = new string; нужно сделать функцию, которая его бы изменяла void func( ??? ) {}

Аргумент в виде шаблонной функции - C++
void Function(любая_функция_с_одним_параметром){} Как при помощи шаблона всунуть в аргумент функции, любую функцию с одним параметром,...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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'
Yandex
Объявления
26.12.2013, 18:01     Передача функции в аргумент
Ответ Создать тему
Опции темы

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