template function as class member
От: Аноним  
Дата: 09.07.05 13:47
Оценка:
У меня есть класс диалога, который порождает много других диалогов. Пытаюсь создать метод класс (темплейт), который бы создавал эти диалоги. что то примерно так..(пишу с сокращениями)


class NewsDlg;
class AudioDlg;

class ToolBar
{
   private:
       NewsDlg* p1;
       AudioDlg* p2;
   private:
       
       template <typename ClassName>
       ClassName* CreateNewDialog (UINT resourceID)
       {
          ClassName* p = new ClassName;
          p->Create (resourceID);
          return p;
       }
};



где то вызываю..


void ToolBar::Init ()
{
   p1 = CreateNewDialog <NewsDlg> (IDD_....);  // вот здесь компилятор орет что нельзя использовать NewsDlg класс ПОЧЕМУ?
}


если функцию CreateNewDialog делаю глобальной, то все в порядке
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.