You should always return the stream reference, not the point reference.
Update: I think someone else pointed out the actual problem in the comments (istream instead of ostream). Also, you are passing the streams by value instead of by reference. Here is what your code should look like:
istream& ::operator >> (istream &in, const point &obj)
{
in >> obj.x;
in >> obj.y;
return in;
}
ostream& ::operator << (ostream &out, const point &obj) // <--- Here is the Problem
{
out << "( " << obj.x << " , " << obj.y << " )";
return out;
}
Update to my update: I would also say that the point value should be passed as a const reference otherwise you would never be able to pass in a constant point value (assuming you would ever want to). See my above edits.
Yet another point (not really relevant): Try not to make them friends of Point unless you have to. It would seem that the x and y values would need to be publicly accessible at some point. If they publicly accessible, then there is no reason for the operators to be friends.