Почему не срабатывает функция?

Я совсем новичок, написал вот такую программу:

bool isEven()
{
    cout << "Enter the number ";
    int x;
    cin >> x;
    int y = 0;
    y = x % 2;
    if (y == 0) {
        cout << "You number is even" << endl;
        return true;
    }
    else {
        cout << "You number is not even" << endl;
        return false;}
}
int main()
{
bool isEven();
 return 0;} 

И понять не могу, какого она не работает. Все проверил степпингом. Строчка в main "bool isEven();" попросту игнорируется! Помогите, пожалуйста.


Ответы (2 шт):

Автор решения: Igor

Смысл у Вашей строчки получился не тот, который Вы думаете.

bool even = isEven();

или

isEven();
→ Ссылка
Автор решения: Mikhailo

Дело в том, что

bool isEven();

это объявление функции (т.е. "где-то есть такая функция - isEven, возвращает bool").

Чтобы ее вызвать, не надо писать bool. Можно вызвать

isEven();

Можно - если надо ее результат - присвоить его переменной типа bool.

И я бы переписал вашу функцию короче:

bool isEven() {
    cout << "Enter the number ";
    int x;
    cin >> x;
    x %= 2;
    cout << "You number is " << (x ? "not " : "") << "even" << endl;
    return x;
    }

Хотя на самом деле функция isEven() не должна заниматься такими детали, как вводить числа и выводить что-то. Каждая функция должна при хорошем дизайне делать только свой часть работы.

bool isEven(int n) { return n%2 == 0; }

int readInt() {
    cout << "Enter the number ";
    int x;
    cin >> x;
    return x;
    }

void print(bool even) {
    cout << "You number is " << (!even ? "not " : "") << "even" << endl;
    }

int main() {
    print(isEven(readInt()));
    }
→ Ссылка