Поскольку lst
является членом базового класса Stack<T>
, который является зависимым типом для T
.Компилятор не может проверять зависимые типы, пока шаблон не будет полностью создан.Вы должны сообщить компилятору, что lst
является частью такого базового класса, написав Stack<T>::lst
.
Как упомянуто в комментариях, this->lst
также является приемлемым решением.Тем не менее, люди, скорее всего, удалят this
, поскольку считают ненужным.Stack<T>::lst
кажется более явным в этом смысле.