Buenas, tengo el siguiente programa con los siguientes ficheros:
ParDe.h
#include <iostream>
using namespace std;
#ifndef _ParDe
#define _ParDe
template <class T>
class ParDe {
protected:
T x; /** Coordenada x del punto */
T y; /** Coordenada y del punto */
public:
/**
* @brief Construye el par (0,0).
* @param _x Valor de la coordenada x del par a crear.
* @param _y Valor de la coordenada y del par a crear.
*/
ParDe (T _x=0, T _y=0);
};
#endif
ParDe.cpp
#include <ParDe.h>
#include <iostream>
using namespace std;
template <class T>
ParDe<T> :: ParDe (T _x, T _y): x(_x), y(_y) {cout << "Constructor" << endl;}
main.cpp
#include <iostream>
#include "ParDe.h"
using namespace std;
int main () {
ParDe <double> p1;
return 0;
}
Al compilar el main, me da el siguiente fallo:
main.o:main.cpp:(.text+0x13d): undefined reference to 'ParDe(double)::ParDe(double,double)'
¿Alguien sabe el motivo del fallo?
Muchas gracias de antemano.