На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Шаблонный класс является полем другого шаблонного класса , error C2275: 'T' : illegal use of this type as an expression
    Всем привет!

    Получил проблему на шаблонах.
    Суть такая. Нужно реализовать шаблонную очередь на основе двусвязного шаблонного списка.
    Разработал шаблонный двусвязный список и протестировал - вроде все прекрасно.
    Вот сам класс двусвязного списка:
    Скрытый текст
    ExpandedWrap disabled
      template < class T >
      struct Node
      {
          T data;
          Node< T >* next;
          Node< T >* prev;
      };
       
      template < class T >
      class DoubleLinkedList
      {
      private:
          Node< T >* head;
          Node< T >* tail;
          int n;
      public:
          DoubleLinkedList();
          Node< T >* Create_node( const T data );
          void Push_back( const T data );
          void Pop_front( void );
          bool Empty( void );
          void Print( void );
          int Size( void );
          ~DoubleLinkedList();
      };


    Тут проблем нет. Все ок. Хотя, может проблемы и есть, но тесты все проходит успешно)

    Проблемы начались СРАЗУ, как только перешел к шаблонному классу "Очередь".
    вот его начало:
    ExpandedWrap disabled
      template < class T >
      class Queue
      {
      private:
          DoubleLinkedList< T > list;
      public:
          void Push( const T data );
      };


    и реализация Push:
    ExpandedWrap disabled
      template < class T >
      void Queue< T >::Push( const T data )
      {
          list.Push_back( T );   // <---- ругается на это :((
      }


    может синтаксически что-то не так делаю, но вообще не понимаю, как это исправить.
    подскажите как быть-то, буду безмерно благодарен

    спс. за внимание
      Цитата FasterHarder @
      может синтаксически что-то не так делаю, но вообще не понимаю, как это исправить.

      Ты пуш делаешь тип T, а не переменную "data".
        Majestio, спс.))
        боже, как же я лажанулся))

        по крайней мере сейчас стало все запускаться
        надеюсь, что все дальше будет ок)
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0259 ]   [ 16 queries used ]   [ Generated: 28.01.23, 07:12 GMT ]