До того, как вы получили:
bool Stack::isEmpty()
{
if(top == 0) <-- top is a function, did you mean 'topPtr'?
{
return true;
}
else
{
return false;
}
}
Исправлено:
bool Stack::isEmpty()
{
return topPtr == 0;
}
Это ваша единственная ошибка сборки. Я не уверен, почему вы или компилятор думали, что это было в верхнем методе. Это прекрасно. Также нет необходимости писать:
if (expression_that_is_true_or_false)
return true;
else
return false;
Просто сделай:
return expression_that_is_true_or_false;
Я мог бы быть пограничным проповедующим стилем, но постараюсь привыкнуть к пониманию выражений таким образом. Выражения, включающие логические операторы, такие как ==,! =, &&, ||, <,> и т. Д., Оцениваются как true или false, поэтому нет необходимости выполнять условное ветвление только для того, чтобы затем возвращать то, что выражение, первоначально оцененное в первом место.
Да, и я понимаю, что это домашнее задание, но проверьте std :: stack позже, в свободное время, если вы этого еще не сделали.