С++ ссылка на неразрешенный внешний символ

У меня есть класс Table и хочу что бы он не был в одном main, но столкнулся с проблемой, компилятор в VS 2017 пишет ошибки:


Ошибка  LNK2019 ссылка на неразрешенный внешний символ "public: __cdecl Table<int>::Table<int>(unsigned __int64,unsigned __int64)" (??0?$Table@H@@QEAA@_K0@Z) в функции main.   

Код в main.cpp

#include <iostream>
using namespace std;

#include "Table.h"


int main()
{
    Table<int> a(3, 3);
    
    return 0;
}

Код в Table.h

#pragma once
#include <iostream>

using namespace std;

template <typename T>
class Table
{
private:
    T** data;
    size_t rows;
    size_t cols;
public:
    Table(size_t rows_, size_t cols_);

};

Код в table.cpp


template <typename T>
Table<T>::Table(size_t rows_, size_t cols_)
{
    rows = rows_;
    cols = cols_;
    data = new T * [rows];
    for (size_t i = 0; i < rows; i++)
    {
        data[i] = new T[cols];
    }
}

Подскажите что не так и как исправить.


Ответы (0 шт):