I have two classes. Class OnePoint, and Class Line. 

A OnePoint consists of a point, two coordinates. 

A Class Line consists of two points, two OnePoint objects. 

How can I add two OnePoints so that it becomes a line with operator overloading?

```
OnePoint a(3.0, 3.0); 
OnePoint b(1.0, 1.0); 

Line d; 

d = a+b; 

cout << d;

```

becomes `{(3.0,3.0),(1.0,1.0)}`. 

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

class OnePoint {
private:
    double xvalue;
    double yvalue;

public:
    OnePoint(double x = 0.0, double y = 0.0) {
        xvalue = x;
        yvalue = y;

    }

    friend ostream& operator<<(ostream& printh, OnePoint& cPoint) {
        printh << "(" << cPoint.xvalue << ',' << cPoint.yvalue << ")";
        return printh;

    }

    void Plus(OnePoint a) {
        xvalue = xvalue + a.xvalue;
        yvalue = yvalue + a.yvalue;
    }

    void Minus(OnePoint b) {

        xvalue = xvalue + b.xvalue;
        yvalue = yvalue + b.yvalue;

    }

    OnePoint Plustwo(OnePoint a) {
        return (xvalue + a.xvalue, yvalue - a.yvalue);

    }

    void Change(double a, double b) {
        xvalue += a;
        yvalue += b;
    }

    void Print(OnePoint b) {

        cout << xvalue << "," << yvalue << endl;

    }

    /*OnePoint operator-(OnePoint a) {
        OnePoint temp;
        temp.xvalue = xvalue + a.xvalue;
        temp.yvalue = yvalue + a.yvalue;

        return temp;

    }

    friend OnePoint operator+(OnePoint a, OnePoint b) {
        OnePoint temp;
        temp.xvalue = a.xvalue + b.xvalue;
        temp.yvalue = a.yvalue + b.yvalue;

        return temp;

    }*/

};

class Line {
private: 
    OnePoint onevalue; 
    OnePoint twovalue; 
public: 
    Line(OnePoint a, OnePoint b) {
        onevalue = a; 
        twovalue = b; 

    }

    /*OnePoint getonevalue() {
        return onevalue; 
    }

    OnePoint gettwovalue() {

        return twovalue; 
    }*/

    friend ostream& operator<<(ostream& print, Line& cLine){
        print << "{"<< cLine.onevalue << ',' << cLine.twovalue << "}"; 
        return print; 
    }

    friend Line operator+(OnePoint a, OnePoint b) {
        Line temp;                                    // I have been trying 
        temp(a, b);                           //something here without luck

        return temp;
    }

};

-------------------------------------------------------------------------------
int main(){

    OnePoint a(3.0, 3.0); 
    OnePoint b(1.0, 1.0);  

    Line d(a, b); 

    cout << a << endl;

    cout << d << endl; 

    }

```