Почему возникает ошибка линковки и как ее решить?
Есть для примера маленький шаблонный класс, который содержит единственный метод. Я хочу обратиться к нему через объект и вызвать в main, но выдает ошибку:
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка LNK1120 неразрешенных внешних элементов: 1 lesson C:\Visual Studio\lesson\x64\Debug\lesson.exe 1
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка LNK2019 ссылка на неразрешенный внешний символ "public: int __cdecl Class::sum(int,int)" (?sum@?$Class@H@@QEAAHHH@Z) в функции main lesson C:\Visual Studio\lesson\main.obj 1
main.cpp
#include <iostream>
#include "1.h"
int main()
{
Class<int> n;
int x = 2;
int y = 5;
std::cout << n.sum(x, y) << std::endl;
return 0;
}
1.h
#pragma once
template <class T>
class Class {
public:
int sum(T x, T y);
};
1.cpp
#include "1.h"
template <class T>
int Class<T>::sum(T x, T y) {
T s = 0;
s = x + y;
return s;
}
IDE Visual Studio Что я упустил при изучении шаблонов?