Avatar ·

Como armazenar corretamente definições de funções template em um arquivo .cpp em C++?

Olá! Estou estudando C++ e me deparei com um problema que não consigo resolver há dois dias. Estou escrevendo uma pequena classe container com templates. Decidi separar a declaração e a implementação em arquivos diferentes, como costumo fazer com classes normais. Aqui está um exemplo: ```cpp // MyArray.h template class MyArray { private: T* data; int size; public: MyArray(int s); ~MyArray(); T& operator[](int index); }; // MyArray.cpp #include "MyArray.h" template MyArray::MyArray(int s) : size(s) { data = new T[size]; } template MyArray::~MyArray() { delete[] data; } template T& MyArray::operator[](int index) { return data[index]; } // main.cpp #include "MyArray.h" int main() { MyArray arr(10); arr[0] = 42; return 0; } ``` Ao compilar, recebo erros de linking: "undefined reference to `MyArray::MyArray(int)'" e similares para outros métodos. Na internet, dizem que isso está relacionado...