Здравствуйте. Объявил шаблон Код (Text): template <class T,int size> class Barely . На его основе пытаюсь определить новый тип, выдается ошибка "type name expected" Код (Text): typedef Barely<T,int> *pBarely; //Type name expected Что я сделал не так?
Спасибо. А вот если класс Barely имеет конструктор с параметром, и в тексте я создаю указатель на класс Barely Код (Text): template <class T> void Barely<T>::Barely(int size) //конструктор с параметром ... ... Barely<int>* cur; //указатель cur=new Barely<int>; Каким образом можно передать параметр созданному объекту? Barely<int> BarInst(3) - то же самое, только для указателя
Так: Код (Text): Barely<int>* cur; //указатель cur=new Barely<int>(3); Конструктор вызывается при создании объекта, а не при объявлении указателя.
То что подсказал booster это typedef который разворачивает шаблон в конкретные типы. Это работает. То что написал ты нуждается в аргументе к typedef (что-то типа typdef<T> template ...) и это в C++98 не работает. Стандартная конcтрукция решающая проблему выглядит так: Код (Text): tempalte <class T> class Something { typedef xxxxx; };