These classes are published classes, simply I am using them now, but cannot even get them to compile. So for example I get the following errors relating to member functions not being found. I have simplified the code such that one can see the point of failure. Does anyone know what is happening here to cause the failure.

Code:`Edge.cpp`

========

#include "Point.h"

#include "Edge.h"

Edge::Edge(Point &_org, Point &_dest) :

org(_org), dest(_dest)

{

}

/*Edge::Edge(void) :

org(Point(0,0)), org(Point(1,0))

{

}

*/

Edge &Edge::rot(void)

{

Point m;

m = 0.5 * (org + dest);

Point v = dest - org;

Point n(v.y, -v.x);

org = m - 0.5 * n;

dest = m + 0.5 * n;

return *this;

}

Edge.h file

========

class Point;

class Edge {

public:

Point org;

Point dest;

Edge(Point &_org, Point &_dest);

Edge(void);

Edge &rot(void);

//Edge &flip(void);

//Point point(double);

//int intersect(Edge&, double&);

//int cross(Edge&, double&);

//bool isVertical(void);

//double slope(void);

//double y(double);

};

Point.cpp

========

#include "Point.h"

Point::Point(double _x, double _y):

x(_x), y(_y)

{

}

Point Point::operator+(Point &p)

{

return Point(x+p.x, y+p.y);

}

Point Point::operator-(Point &p)

{

return Point(x - p.x, y-p.y);

}

Point operator*(double s, Point &p)

{

return Point(s *p.x, s *p.y);

}

double Point::operator[](int i)

{

return (i ==0) ? x : y;

}

int Point::operator==(Point &p)

{

return (x == p.x) && (y == p.y);

}

int Point::operator!=(Point &p)

{

return !(*this == p);

}

int Point::operator<(Point &p)

{

return ((x < p.x) || ((x == p.x) && (y < p.y)));

}

int Point::operator>(Point &p)

{

return ((x > p.x) || ((x == p.x) && (y > p.y)));

}

/*int main(void)

{

return (0);

}*/

Point.h

========

class Point{

public:

double x;

double y;

Point(double _x = 0.0, double _y = 0.0);

Point operator+(Point&);

Point operator-(Point&);

friend Point operator*(double, Point&);

double operator[](int);

int operator==(Point&);

int operator!=(Point&);

int operator<(Point&);

int operator>(Point&);

int classify(Point&, Point&);

//int classify(Edge&);

double polarAngle(void);

double length(void);

//double distance(Edge&);

};

Error on compilation.

============

g++ -c Edge.cpp -o Edge.o

Edge.cpp: In member function ‘Edge& Edge::rot()’:

Edge.cpp:20: error: no match for ‘operator*’ in ‘5.0e-1 * ((Edge*)this)->Edge:rg. Point:perator+(((Point&)(&((Edge*)this)->Edge::dest)))’

Point.h:10: note: candidates are: Point operator*(double, Point&)

Edge.cpp:23: error: no match for ‘operator-’ in ‘m - operator*(5.0e-1, ((Point&)(& n)))’

Point.h:9: note: candidates are: Point Point:perator-(Point&)

Edge.cpp:24: error: no match for ‘operator+’ in ‘m + operator*(5.0e-1, ((Point&)(& n)))’

Point.h:8: note: candidates are: Point Point:perator+(Point&)

Code:`The Makefile is as follows:`

all: Poly

Poly: Point.o Edge.o Polygons.o

g++ -o Poly Point.o Edge.o Polygons.o

Point.o: Point.cpp

g++ -c Point.cpp -o Point.o

Edge.o: Edge.cpp

g++ -c Edge.cpp -o Edge.o

Polygons.o: Polygons.cpp

g++ -c Polygons.cpp -o Polygons.o

clean:

find . -name '*.o' | xargs rm -f ;

Thanks