I'm a C++ beginner, trying to learn from online videos. In of the operator overloading examples in the lectures the following code is there and gives the error 

```
 error: no match for 'operator<<' in 'std::cout << operator+(((point&)(& p1)), ((point&)(& p2)))'compilation terminated due to -Wfatal-errors.

```

on the line marked with comment. Can someone please tell what's wrong in the code? I am just trying what the professor explained in the lecture but can't compile.

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

```
#include <iostream>
using namespace std;

class point{
public:
    double x,y;
};

point operator+ (point& p1, point& p2)
{
    point sum = {p1.x + p2.x, p1.y + p2.y};
    return sum;
}

ostream& operator<< (ostream& out, point& p)
{
    out << "("<<p.x<<","<<p.y<<")";
    return out;
}

int main(int argc, const char * argv[])
{
    point p1 = {2,3};
    point p2 = {2,3};
    point p3;
    cout << p1 << p2;

    cout << p1+p2; // gives a compliation error
    return 0;
}

```