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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ #error http://www.cyberforum.ru/cpp-beginners/thread928854.html
Добрый вечер! При сравнении объектов разных типов, должна вылетать ошибка компиляции. А ошибка получается здесь: #define RIGHT bool approx :: operator> (const approx& obj) const //перегруженный оператор сравнения объектов > { if ( (this -> type != true) || (obj.type != true) ) #undef RIGHT
C++ Не знаю как назвать Подскажите пожалуйста, где здесь ошибка? Пытался скомпилировать в Microsoft Visual C++ (2010) Нажал на кнопку Run, а там ошибка, ну вообщем на скринах всё видно, там уйма ошибок... Но не знаю каких... /* Программа №1 - Первая C++-программа. Введите эту программу, затем скомпилируйте её и выполните. */ http://www.cyberforum.ru/cpp-beginners/thread928850.html
Быки и коровы C++
1. В чём разница между структурой и классом, зачем использовать структуру? 2. Зачем нужны структуры pair и four? 3. Что такое inline и зачем их использовать? 4. Что значит строчка game(): m_attempts( 0 ) ? помогите ответить на вопросы пожжжж быстреее!!! #include <iostream> #include <cstdlib> #include <cmath>
Игнорируется RegisterHotKey() C++
Не понять почему, но все же факт. ЗЫ:Компилятор ошибок не выдает! bool noclip(HWND hwnd) { if(RegisterHotKey(NULL, 1, MOD_SHIFT, 0x01)) { MemoryManager* MM = new MemoryManager("sniperelite.exe"); DWORD PosX = MM->FindAdressByOffset(0x400000 + 0x003023F8, 0x48, 0x308, 0x10, false);
C++ Освобождение памяти из под Объектов в статическом массиве указателей http://www.cyberforum.ru/cpp-beginners/thread928804.html
Всем добрый вечер! Решил расширить программу из книжки Лафорте Р. ООП в С++ стр. 574 путем добавления функции удаления данных о конкретном работнике.. #include <fstream> // для потоковых файловых функций #include <iostream> #include <typeinfo> // для typeid() using namespace std; #include <process.h> // для exit() const int LEN = 32; // Максимальная длина фамилий const int MAXEM = 100;...
C++ Ошибка в получение значения (LIFO) bool CStack::GetVal( int &val) { if(pFirst==NULL) return 0; else { val=pFirst->val; } Elem *pCur=pFirst; pFirst=pFirst->pNext; подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 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;
}
 
Текущее время: 06:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru