Задать вопрос

Почему компилятор выдает error C2065 (ежедневная рубрика "Магия С++")?

Здравствуйте. Я новичок в C++. На работе ковыряюсь в чужом проекте. В файле есть два метода. В одном из них используется класс. Я хочу использовать этот класс в другом методе, на что компилятор выдает error C2065: undeclared identifier. Вот схематичное описание ситуации:
temlate<class Base>
class CLASS
{
   void visit()
   {
      // bla bla bla
      Device d;  // 'Device' : undeclared identifier
      //bla bla bla
   }
   void Draw()
   {
      // bla bla bla
      Device d;  // It's OK
      //bla bla bla
   }
};

Не могу понять почему это так. Пробовал менять методы местами, но ошибка остается, причем именно на ту же самую строку (в методе visit). Подскажите пожалуйста как это исправить. Заранее спасибо!

UPD:
Если закомментировать использование Device в методе visit, то все отлично работает (проект рабочий, я его просто допиливаю):
class CLASS
{
   void visit()
   {
      // bla bla bla
      // Device d;  // now it's OK
      //bla bla bla
   }
   void Draw()
   {
      // bla bla bla
      Device d;  // It's OK
      //bla bla bla
   }
};
  • Вопрос задан
  • 2975 просмотров
Подписаться 3 1 комментарий
Подписчики вопроса 3 К ответам на вопрос (3)