Чтобы использовать шаблон класса, вы должны определить его, только объявления недостаточно.То, что делает компилятор, когда находит реальное использование шаблона класса, скажем Stack<int>
, он помещает int для замены T в вашем определении шаблона класса и генерирует класс для него.Когда он видит Stack<double>
, он генерирует другую базу типов на вашем шаблоне класса, эти сгенерированные типы называются шаблоном класса.
Кстати, как я могу использовать грамматику c ++ <"int"> (игнорировать ") в ответе, он просто исчезает.