LINUX.ORG.RU

c++ templates


0

0

Как объявляется друг - шаблон для шаблона? Наприме есть шаблон:
template <typename ListType> class TLElem {
	private:
	unsigned long dSize;
	unsigned long dInUse;
	ListType **dP;
	TLElem *next;

	TLElem(void);
	TLElem(const unsigned long);
	~TLElem(void);
};

template <typename ListType> class TList {
	private:
		TLElem <ListType> *eFirst, *eLast;
				
	public:
		TList(const unsigned long);
		~TList(void);

};

Как получить доступ к шаблону TLElem из шаблона TList?
Пробовал friend class TList, в линухе прокатило, но MS Viual Studio нет.
★★★★★

Re: c++ templates

P.S. каждый из шаблонов ноходится в своем .h файле, где полностью и описывается

roy ★★★★★ ()
Ответ на: Re: c++ templates от roy

Re: Re: c++ templates

А у тебя TLElem только в TList используется? Если да - то сделай его частной структурой класса TList (объяви ее в разделе private TList). Если разделение на файлы обязательно - то опиши отдельно, в любом случае подобный класс не должен быть частью открытого интерфейса

Begemoth ★★★★★ ()

Re: c++ templates

template <typename ListType> class TLElem;
template <typename ListType> class TList;

template <typename ListType> class TLElem {
  .......
  frield class TList<ListType>;
};

anonymous ()
Ответ на: Re: c++ templates от anonymous

Re: Re: c++ templates

Спасибо всем. Этот вариант меня устроил :)

roy ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.