#include <iostream>
class Cartesian
{
public:
//Overload operator+ for adding Cartesian instances
friend Cartesian operator+(const Cartesian& c1, const Cartesian& c2);
//Overload operator<< for printing out Cartesian's x and y values
friend std::ostream& operator<<(std::ostream& os, const Cartesian& obj);
int x,y;
void setXY(int px, int py)
{
x = px;
y = py;
}
};
Cartesian operator+(const Cartesian& c1, const Cartesian& c2)
{
return { c1.x + c2.x, c1.y + c2.y };
}
std::ostream& operator<<(std::ostream& os, const Cartesian& obj)
{
std::cout<<obj.x<<" "<<obj.y;
}
int main()
{
std::cout<<"Hello World"<<std::endl;;
Cartesian point1, point2;
point1.setXY(5,10);
std::cout<<"point1's coordinates are: "<<point1<<std::endl;
point2.setXY(15, 20);
std::cout<<"point2's coordinates are: "<<point2<<std::endl;
Cartesian resultingPoint = point1 + point2;
std::cout<<"resultingPoint's coordinates are: "<<resultingPoint<<std::endl;
return 0;
}