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

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

Войти
Регистрация
Восстановить пароль
 
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
#1

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

21.04.2014, 18:19. Просмотров 145. Ответов 0
Метки нет (Все метки)

Нужно сделать класс, чтобы можно было обрабатывать неопознанные клавиши. В методе 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");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2014, 18:19     Обработка клавиш, используя указатели на функции
Посмотрите здесь:

Обработка строк,используя указатели - C++
Здравствуйте. Помогите, пожалуйста, решить задачу. Заранее спасибо. 1)Ввести строку в символьный массив tmp . 2)Выделить блок памяти...

Составить программу обработки двухмерного массива используя указатели и функции... - C++
Составить программу обработки двухмерного массива используя указатели и функции, выполнив каждый пункт задания в виде функции. Все...

Двумерный массив. Программу написать используя указатели и строковые функции. - C++
#include &lt;iostream.h&gt; int num (int **a, const int n, const int m); void sum (int **b, const int k, const int r); int main () { int...

Вычислить суммы с данной точностью е, используя указатели на функции, как параметры - C++
Используйте указатели на функции как параметры: \sum_{n=1}^{\infty}\frac{sin \, n}{n} \sum_{n=1}^{\infty}\frac{n}{e^n}

Создать меню для работы с программой заполнения массива, используя функции, указатели на сылки - C++
Реализовать программу меню: 1. Заполнить массив нулями 2. Заполнить массив с клавиатуры 3. Заполнить массив случайными числами ...

Указатели и обработка строк - C++
1) Написать программу которая проверяет находиться ли введенное с клавиатуры число в массиве. Массив должен вводиться во время работы...

Обработка строк и указатели - C++
всем доброго времени суток ! :) мне дали вот такое вот интересное и в тоже время очень трудное ( для меня, новичка) задание, с которым я,...

Обработка нажатий клавиш с glfw - C++
Изучаю glfw. Задался вопросом обработки нажатий клавиш. Нашел функцию glfwGetKey(int key), где int key - номер клавиши по какому-то там...

Обработка нажатия клавиш OPENGL - C++
Привет! Столкнулся с такой проблемой, что для opengl, если пользуемся glutspecialfunc( для обработки нажатия клавиш), то коды клавиш ...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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