Мой код работает нормально, но я получаю эту ошибку в своем классе: Ошибка C2446: '==': нет преобразования из 'int' в 'int (__thiscall keyboard :: *) (void)'. Вот проблема:
class keyboard {
public:
char W = 'W';
char A = 'A';
char S = 'S';
char D = 'D';
char E = 'E';
char tasta;
int key_pressed_frd() {
cin >> tasta;
if (tasta == W) return 1;
else return 0;
}
Это часть моего класса, которая включает в себя еще 4 функции (такие же, как эта), и я получаю ту же ошибку.
Так что это мое целое code:
#include <iostream>
using namespace std;
char tasta;
class keyboard {
public:
int key_pressed_frd() {
cin >> tasta;
if (tasta == 'w') return 1;
else return 0;
}
int key_pressed_back() {
cin >> tasta;
if (tasta == 's') return 1;
else return 0;
}
int key_pressed_lft() {
cin >> tasta;
if (tasta == 'a') return 1;
else return 0;
}
int key_pressed_rgt() {
cin >> tasta;
if (tasta == 'd') return 1;
else return 0;
}
int key_pressed_stop() {
cin >> tasta;
if (tasta == 'e') return 1;
else return 0;
}
};
void forward() {
cout << "I go forward!";
}
void back() {
cout << "I go back!";
}
void left() {
cout << "I go left!";
}
void right() {
cout << "I go right!";
}
int main()
{
//keyboard apas;
while (true) {
if (&keyboard::key_pressed_frd == 1)
while (&keyboard::key_pressed_frd == 1) forward();
if (&keyboard::key_pressed_back == 1)
while (&keyboard::key_pressed_back == 1) back();
if (&keyboard::key_pressed_lft == 1)
while (&keyboard::key_pressed_lft == 1) left();
if (&keyboard::key_pressed_rgt == 1)
while (&keyboard::key_pressed_rgt == 1) right();
if (&keyboard::key_pressed_stop == 1)
while (&keyboard::key_pressed_stop == 1) break;
}
}
В основном он использует класс для получения ввода с клавиатуры, а затем, если условие проверено, в консоли появится сообщение. Я думаю, что код очень неправильный, потому что я впервые использую класс, но любая помощь от вас будет признательна! Спасибо! PS: под вкусом на моем языке подразумевается случайная клавиша с клавиатуры