Avatar ·

Cómo almacenar correctamente las definiciones de funciones template en un archivo .cpp en C++

¡Hola! Estoy aprendiendo C++ y me encontré con un problema que no puedo resolver desde hace dos días. Estoy escribiendo una pequeña clase contenedor con templates. Decidí separar la declaración y la implementación en diferentes archivos, como suelo hacer con clases normales. Aquí hay un ejemplo: ```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; } ``` Al compilar, obtengo errores de enlace: "undefined reference to `MyArray::MyArray(int)'" y similares para otros métodos. En internet dicen que esto está relacionado...