On line 13 of LineSegment.hpp we see that the constructor for LineSegment takes two arguments of type double.
On line 12 of PointMain.cpp we see that you're trying to create a LineSegment with two arguments of type Point.
So, there is no constructor that matches the arguments you've fed to it on line 12 of PointMain.cpp.
[Edit: Conversion stuff was backwards. There is no way to convert from type Point to type double so there is no way for the compiler to convert the arguments to an acceptable type.]
Obviously, the Point type is meant to describe a location in 2d space. Your LineSegment, on the other hand, could only describe a segment in 1d space (if that's even possible.) Yes. LineSegment should be implemented using the Point type.
A line segment is defined between two Points p1 (x1, y1) and p2(x2,y2)
The length of the line segment is as you have calculated before by Pythagoras theorem without regard to sign.
L = sqrt( dx^2 + dy^2), whichever way you decide to calculate it.
However for calculating the slope the direction is important as against just calculating the scalar distance between two points. So dx = x2 - x1, dy = y2 - y1 for L1->2
The slope of the line is dy/dx for the tangent the normal way of describing the slope, or dy/L for sine. Both cases are 'direction sensitive'.