keil не распознает определение класса шаблона

если я определю заголовок нешаблонном класс в test.h и поместить определения функций в отдельный test.cpp Хорошо

но если я определю заголовок шаблон класс в test.h и поместил определения функций в отдельный test.cpp я получил эту ошибку:
Ошибка: L6218E: Неопределенный символ test :: test (без знака) (по ссылке из main.o).

Что ж, странно, если я выложу функцию таким же образом из класса, но в файле test.h все работает !!!.

В чем проблема? То, что при вставке функций и других файлов компоновщик их не видит.

Я использую команды компилятора —C99 —cpp

я использую keil IDE и stm32f407

test.h:
-------

template <class T>
class test
{

public:

T * Pointer;

protected:

int * test_count;

public:

test(unsigned int n);

~test();
};

test.cpp:
---------

#include "test.h"
template<class T>
test<T>::test( unsigned int n)
{ My Code..
}

template<class T>
test<T>::~test()
{ My Code...
}

Main.cpp:
---------
#include "test.h"int main(void){

test<char> Mydata1(10);

....
}

Встроенная ошибка:

testc ++. axf: ошибка: L6218E: неопределенный символ test :: test (без знака) (по ссылке из main.o).
testc ++. axf: ошибка: L6218E: неопределенный символ test :: ~ test () (по ссылке из main.o).

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]