LNK 2019 При вызове объекта шаблонного класса

162
15 декабря 2016, 16:00

Ошибка происходит при инициализации объекта класса Interface;

Interface <int> test;

Если убрать шаблон из класса, то ошибка пропадает.

Interface.h:

#pragma once
#include <iostream>
using namespace std;
template <class T>
class Interface
{
private:
    T dummy;
public:
    Interface();
    ~Interface();
//  void menu(void);
};

Interface.cpp:

#include "Interface.h"
template <class T>
Interface<T>::Interface()
{
}
template <class T>
Interface<T>::~Interface()
{
}

Список ошибок:

Ошибка  1   error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Interface<int>::Interface<int>(void)" (??0?$Interface@H@@QAE@XZ) в функции _main
Ошибка  2   error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Interface<int>::~Interface<int>(void)" (??1?$Interface@H@@QAE@XZ) в функции _main 
Ошибка  3   error LNK1120: неразрешенных внешних элементов:
Answer 1

Проблема решена переносом кода из .cpp в .h файл. Тем не менее, есть ли способы описать шаблонный класс раздельно?

READ ALSO
Ошибка error C2039: {ctor}: не является членом

Ошибка error C2039: {ctor}: не является членом

Дано: число N и последовательность a1, a2, … aN

297
Вставить символ в слово между символами

Вставить символ в слово между символами

Всем доброго времени суток

177
Как нарисовать картинку с помощью OpenGl?

Как нарисовать картинку с помощью OpenGl?

Здравствуйте! Не подскажете, как нарисовать картинку с помощью OpenGl?

152
Делится ли число на 36 [закрыто]

Делится ли число на 36 [закрыто]

Здраствуйте помогите с программой (C++) Вводится одно число которое может быть максимум 1000 значным(соответственно его можно прочесть только...

157