#include "pch.h"
#include <algorithm>
#include <iostream>

using namespace std;

class Point //класс
{
private:
	double x; //поле
	double y;

public:
	void set_y(double yy)
	{
		y = yy;
	}

	Point()
	{
	}

	Point(double xx, double yy = 5) //конструктор
		: x(xx), y(yy)
	{
		if (x < 0)
			x = 0;
		if (y < 0)
			y = 0;
	}

	double dist() //метод
	{
		return sqrt(x * x + y * y);
	}

	double scl(Point other)
	{
		return x * other.x + y * other.y;
	}
	
	void print()
	{
		cout << x << " " << y << endl;
	}

	Point operator+(Point other) // Перегрузка оператора +
	{
		return Point(x + other.x, y + other.y);
	}
	
	Point operator+(double other)
	{
		return Point(x + other, y + other);
	}

	bool operator<(Point other) //this < other
								// Перегрузка оператора <
	{
		return x < other.x || (x == other.x && y < other.y);
	}

};

int main()
{
	Point p1(4.2, 5.3); // экземпляр структуры (объект)

	Point p2(12);
	p2.set_y(3.5);

	Point p3 = p1 + p2;
	p3.print();
	Point p4 = p1 + 3.0;
	p4.print();

	Point points[3];
	points[0] = Point(1, 3);
	points[1] = Point(5, 1);
	points[2] = Point(2, 5);

	sort(points, points + 3); // Нужна перегрузка оператора <
	for (int i = 0; i < 3; i++)
		points[i].print();
}
