"Undefined symbols" error in C++
===

I have `Point` class that has `X`, `Y` and `Name` as data members. I overloaded 

    T operator-(const Point<T> &);
This calculates the distance between two points and returns a value

    template < typename T>
    T Point<T>::operator-(const Point<T> &rhs)
    {
	cout << "\nThe distance between " << getName() << " and " 
	<< rhs.getName() << " = ";
	
	return sqrt(pow(rhs.getX() - getX(), 2) + pow(rhs.getY() - getY(), 2));;
    }
    
The `main` function

    int main () {
	
	Point<double> P1(3.0, 4.1, "Point 1");
	
	Point<double> P2(6.4, 2.9, "Point 2");
	
	cout << P2 - P1;
    return EXIT_SUCCESS;
    }

But the problem is that this program doesn't compile, and I receive this error:

    Undefined symbols:
    "Point<double>::operator-(Point<double>&)", referenced from:
      _main in main.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status

Any help is appreciated...