Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шаблоны + Указатель на функцию. Странные ошибки! 
:(
    Опции темы
PRIZRAK001
Дата 9.9.2006, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 13.7.2005

Репутация: нет
Всего: 1



Здравствуйте.

Объясните, почему код

Код

#include "stdafx.h"

template <class TAny>
class TMyClass
   {
   private:
   
      typedef void (TAny::*TFuncPtr)(void);   
      
      TFuncPtr FuncPtr;   
   
   public:
   
      TMyClass(void)
         {         
         }
      
      TFuncPtr GetFuncPtr(void)
         {
         return FuncPtr;
         }
   };       

int _tmain(int argc, _TCHAR* argv[])
   {      
   return 0;
   }

успешно компилируется, а код

Код

#include "stdafx.h"

template <class TAny>
class TMyClass
   {
   private:
   
      typedef void (TAny::*TFuncPtr)(void);   
      
      TFuncPtr FuncPtr;   
   
   public:
   
      TMyClass(void);
      
      TFuncPtr GetFuncPtr(void);
   };    
   
template <class TAny>   
TMyClass <TAny> :: TMyClass(void)
   {    
   }
    
template <class TAny>   
TFuncPtr TMyClass <TAny> :: GetFuncPtr(void)
   {
   return FuncPtr;    
   }

int _tmain(int argc, _TCHAR* argv[])
   {      
   return 0;
   }

выдаёт ошибки

Код

Error 1 error C2143: syntax error : missing ';' before 'TMyClass<TAny>::GetFuncPtr'
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

У меня Visual Studio 2005. 

Что надо сделать, чтобы второй вариант заработал?
PM   Вверх
MAKCim
Дата 9.9.2006, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Код

template <class TAny>   
typename TMyClass<TAny>::TFuncPtr TMyClass <TAny> :: GetFuncPtr(void)
   {
   return FuncPtr;    
   }


Добавлено @ 15:37 
TFuncPtr еще не известен когда ты делаешь
Цитата

template <class TAny>   
TFuncPtr TMyClass <TAny> :: GetFuncPtr(void)
   {
   return FuncPtr;    
   }




--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
PRIZRAK001
Дата 10.9.2006, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 13.7.2005

Репутация: нет
Всего: 1



Спасибо, MAKCim. 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.