Вы не переопределили оператор << для вашего нового стека, который вызывает ошибку.Если вы напечатали x, а затем сделали push, вы не получите сообщение об ошибке.Если вы хотите, чтобы cout мог печатать ваш стек, вам нужно определить, КАК оператор << работает. </p>
Реальная проблема здесь в том, как вы ожидаете, что ваш код будет работать.Во-первых, push не должен возвращать значение для начала, это не то, как работает стек.Вы можете реализовать pop, который выскочит и вернет верхнее значение стека, однако тогда вы потеряете это значение.Вам нужно реализовать Peek.Поскольку это домашнее задание, я не буду давать вам прямой ответ о том, как писать вглядываться, но это должен быть лучший способ выполнения вашего кода.
for (x=0; x<=9; x++)
{
number.push(x);
cout << number.peek() << endl;
}