Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по шаблонам и заголовычным файлам.

1.9K
08 августа 2005 года
solovey
113 / / 25.07.2004
Доброго времени суток. Возникла проблема с шаблонами. Как я узнал, в VC6 мне бы не удалос ее разрешить. Может в VC7.1 все-таки можно? Проблема в следующем. Имеется заголовочный файл с шаблоном Test.h:
Код:
#ifndef _S_

#define _S_

template< class T >class S
{
    T a;
    public:
        S(){a = 1;};
        T f();
};

#endif // _S_

Реализация функции template< class T >T S< T >::f(); вынесена в файл Test.cpp:
 
Код:
#include "stdafx.h"
#include "Test.h"

template< class T >T S< T >::f()
{
    return a;
}
В главном файле программы Console.cpp я пытаюсь использовать этот шаблон
 
Код:
#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
    S< float > s;
    std::cout<<s.f();
    return 0;
}
и получаю ошибку Console.obj : error LNK2019: unresolved external symbol "public: float __thiscall S<float>::f(void)" (?f@?$S@M@@QAEMXZ) referenced in function _main. Есть ли способ разделить определение и реализацию класса?
3
08 августа 2005 года
Green
4.8K / / 20.01.2000
Уж сколько раз твердили Миру...
нельзя выностить реализацию шаблонов в отдельный CPP.
За подробностями в поиск.
1.9K
08 августа 2005 года
solovey
113 / / 25.07.2004
Цитата:
Originally posted by Green
Уж сколько раз твердили Миру...
нельзя выностить реализацию шаблонов в отдельный CPP.
За подробностями в поиск.


Спасибо :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог