Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Хитрые шаблоны


Автор: Freeman 18.3.2004, 13:47
Люди, есть небольшая проблемка в реализации класса с использование шаблона, вот код


class CMenu
{
public:
CList<CItemMenu> items;
CList<CMenu> child;
};


первая часть работает, вторая нет. Если кто знает, плз скажите, очень надо для курсовика smile.gif

Автор: Borisff2003 18.3.2004, 14:19
Так ведь класс CMenu уже есть, и он не может его переопределить

Автор: srd 18.3.2004, 16:04
Забавно, объекта класса CMenu содержит список объектов класса CMenu, которые содержат списки объектов класса CMenu.... Это то, что тебе надо? smile.gif

Автор: FreshMeat 18.3.2004, 19:34
Код

CList<CMenu> child;

Видимо CList использует хранение элементов по значению, поэтому при попытке инстанцирования валится вполне логичная ошибка. Но это не более чем предположение.
Попробуй использовать указатель на CMenu.
Код

CList<CMenu*> child;


PS STL именно для этих целей хранит элементы только по указателям... Т.е. с std::list такой проблемы возникнуть не должно.

Автор: Guest 19.3.2004, 08:29
srb да мне это и нужно чтобы сделать древовидное меню

[b]FreshMeat[\b] видимо ты прав, потому что CList<CMenu*> child работает. Спасибо за подсказку, переделаю свой CList smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)