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

Обработка клавиш, используя указатели на функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Итератор в иерархии объектов http://www.cyberforum.ru/cpp-beginners/thread1153379.html
Есть иерархия объектов: Во главе факультет, в факультет входять студ группы , кафедры. В студ группах есть студенты. Включение объектов в список работает. Все хорошо выводится. Не могу написать итератор (foreach) в классе факультет. Именно , написать проверку , что объект включенный в факультет является студ группой. Потому что факультет не знает класс студентов. Задание...
C++ Перенести положительные элементы A[n] массива на B[m] перенести положительные элементы A массива на B,a отрицательные элементы на C http://www.cyberforum.ru/cpp-beginners/thread1153376.html
C++ Найти количество знаков препинания в строке
задана строка.найти количество знаков препинания в строке C++
C++ Добавление элемента в двоичное дерево
bt.h #include <cstdlib> #pragma once class TreeNode{ friend class SimpleTree; int data; TreeNode* left; TreeNode* right; public:
C++ Как установить время изменения каталога или файла ? http://www.cyberforum.ru/cpp-beginners/thread1153351.html
Есть такая задача : отловить изменения подкаталогов в каталоге и вывести время их изменения. Вот мой код: #include "stdafx.h" #include <iostream> #include <Windows.h> #include <stdio.h> using namespace std; HANDLE hFind; HANDLE hndl;
C++ Найти количество вхождений каждого слова в файл Есть файл, в нем определенный текст. Нужно найти сколько каждое слово встречается в файле...Начал писать, уже сделал чтобы разделяло на слова...но до истины увы дойти не могу...Помогите плиз) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> #include <fstream> using namespace std; подробнее

Показать сообщение отдельно
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 338
21.04.2014, 18:19     Обработка клавиш, используя указатели на функции
Нужно сделать класс, чтобы можно было обрабатывать неопознанные клавиши. В методе edit(), в котором расположен цикл обработки клавиш, распознается 2 клавиши. Нужно сделать так, чтобы пользователь-программист мог написать свою функцию, и назначить ее на какую-либо клавишу. Пример конечно утрирован, но суть не в этом.
Вот класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Number{
    int a;
public:
    Number(int a) : a(a){} //конструктор
    int get(){ return a; } //получить число
    void set(int x){ a = x; } // установить число
    
    void edit(){ //обработка клавиш
        int c;
        do{
            c = _getch();
            switch (c){
                case 49: a *= 2; print(); break;// если была нажата клавиша 1, удваиваем число
                case 50: a = -a; print(); break;// если была нажата клавиша 2, меняем на противоположное
            }
        } while (c != 27);// пока не нажат escape
    }
    void print(){//вывод числа на экран
        cout << a << endl;
    }
};
Пользователь класса пишет программу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "Number.h"
using namespace std;
void treble(Number p){//утроить число
    p.set(3 * p.get());
}
int main()
{
    Number t(5);
    // как сделать так, чтобы при нажатии клавиши 3 вызывалась функция treble???
// то есть куда-то нужно передать указатель на функцию.
    t.edit();
    cout << endl;
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru