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

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

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

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

21.04.2014, 18:19. Просмотров 147. Ответов 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++):

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

Распечатать таблицы значений функций cox (x) и на отрезке [a; b] с шагом h, развив функции в ряд Тейлора и используя указатели на функции - C++
Распечатать таблицы значений функций cox (x) и на отрезке с шагом h, развив функции в ряд Тейлора и используя указатели на функции.

Двумерный массив. Программу написать используя указатели и строковые функции. - 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++
Составить программу обработки двухмерного массива используя указатели и функции, выполнив каждый пункт задания в виде функции. Все...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2014, 18:19
Привет! Вот еще темы с ответами:

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

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной - C++
Мой код. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include&lt;iomanip&gt; using namespace std; void min_max(int*pa, int*pb,...

Написать программу "Военкомат" используя указатели, функции и динамическую память - C++
Написать программу военкомат используя указатели, функции и динамическую память

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) - C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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