Когда вы говорите
protected: s.push (p);
Вы имеете в виду, что пытаетесь написать это внутри объявления класса (.hфайл)?Вы уже объявили стек, чтобы использовать его, вы должны сделать это внутри определения функции-члена.
Кроме того, как упоминал Джерри Коффин, если только вы не определили тип "T" для типа пользователя,Вы должны заменить его реальным типом, который вы будете использовать.Или сделайте весь класс шаблоном класса ...
Вы говорите, что у вас есть больше кода в "защищенной" области, возможно, вы должны также опубликовать это и объяснить, что вы пытаетесь достичь.