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

Как реализовать вызов "переменной" функции? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ #error http://www.cyberforum.ru/cpp-beginners/thread928854.html
Добрый вечер! При сравнении объектов разных типов, должна вылетать ошибка компиляции. А ошибка получается здесь: #define RIGHT bool approx :: operator> (const approx& obj) const...
C++ Не знаю как назвать Подскажите пожалуйста, где здесь ошибка? Пытался скомпилировать в Microsoft Visual C++ (2010) Нажал на кнопку Run, а там ошибка, ну вообщем на скринах всё видно, там уйма ошибок... Но не знаю... http://www.cyberforum.ru/cpp-beginners/thread928850.html
Быки и коровы C++
1. В чём разница между структурой и классом, зачем использовать структуру? 2. Зачем нужны структуры pair и four? 3. Что такое inline и зачем их использовать? 4. Что значит строчка game():...
Игнорируется RegisterHotKey() C++
Не понять почему, но все же факт. ЗЫ:Компилятор ошибок не выдает! bool noclip(HWND hwnd) { if(RegisterHotKey(NULL, 1, MOD_SHIFT, 0x01)) { MemoryManager* MM = new...
C++ Освобождение памяти из под Объектов в статическом массиве указателей http://www.cyberforum.ru/cpp-beginners/thread928804.html
Всем добрый вечер! Решил расширить программу из книжки Лафорте Р. ООП в С++ стр. 574 путем добавления функции удаления данных о конкретном работнике.. #include <fstream> // для потоковых файловых...
C++ Ошибка в получение значения (LIFO) bool CStack::GetVal( int &val) { if(pFirst==NULL) return 0; else { val=pFirst->val; } Elem *pCur=pFirst; pFirst=pFirst->pNext; подробнее

Показать сообщение отдельно
Croessmah
Эксперт CЭксперт С++
13510 / 7668 / 866
Регистрация: 27.09.2012
Сообщений: 18,865
Записей в блоге: 3
Завершенные тесты: 1
25.07.2013, 23:59
Можно изгаляться с указателями:
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
35
36
37
38
39
40
41
#include <iostream>
#include <map>
#include <string>
#include <utility>
 
 
typedef void ( *PVOIDFOO ) ( );
 
 
void f1 ( ) {
    std::cout << "Call f1 ( )" << std::endl;
}
 
void f2 ( ) {
    std::cout << "Call f2 ( )" << std::endl;
}
 
 
void f3 ( ) {
    std::cout << "Call f3 ( )" << std::endl;
}
 
 
int main(){
    std::map < std::string , PVOIDFOO > functionCollection ;
    functionCollection.insert ( std::make_pair ( "f1" , f1 ) ) ;
    functionCollection.insert ( std::make_pair ( "f2" , f2 ) ) ;
    functionCollection.insert ( std::make_pair ( "f3" , f3 ) ) ;
    std::ostream * pOldStream = std::cin.tie ( & std::cout ) ;
    std::cout << "Input function name ->" ;
    std::string functionName ;
    std::cin >> functionName ;
    std::map < std::string , PVOIDFOO > :: iterator findIterator = functionCollection.find ( functionName ) ;
    if ( findIterator != functionCollection.end ( ) ){
        findIterator->second ( ) ;
    } else {
        std::cout << "Function \"" << functionName << "\" not found" <<std::endl;
    }
    std::cin.tie ( pOldStream ) ;
    return 0;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru