Задать вопрос

C# Что значит такая перегрузка оператора отношения?

Тут координаты; знаю, напр., Sqrt ( pow(x,2) - pow(y,2) ) даёт длину отрезка, а в рассматриваемом коде Шилдта складываются квадраты координат одной точки, из чего потом извлекается корень... Не могу вспомнить && будет полезно всем.

// Перегрузить операторы < и >.
using System;
// Класс для хранения трехмерных координат.
class ThreeD {
	int х, у, z; // трехмерные координаты
	public ThreeD() { х = у = z = 0; }
	public ThreeD(int i, int j, int k) { x = i; у = j; z = k; }

	// Перегрузить оператор <.
	public static bool operator <(ThreeD op1, ThreeD op2)
	{
		if(Math.Sqrt(op1.x * op1.x + op1.y * op1.y + op1.z * op1.z) <
		   Math.Sqrt(op2.x * op2.x + op2.у * op2.y + op2.z * op2.z))
		return true;

		else return false;
	}

	// Перегрузить оператор >.
	public static bool operator >(ThreeD op1, ThreeD op2)
	{
		if(Math.Sqrt(op1.x * op1.x + op1.y * op1.y + op1.z * op1.z) >
		   Math.Sqrt(op2.x * op2.x + op2.у * op2.у + op2.z * op2.z))
			return true;
		
		else return false;
	}

	// Вывести координаты X, Y, Z.
	public void Show()
	{
		Console.WriteLine(x + ", " + у + ", " + z);
	}
}


class ThreeDDemo {
	static void Main() {
		ThreeD a = new ThreeD(5, 6, 7);
		ThreeD b = new ThreeD(10, 10, 10);
		ThreeD с = new ThreeD(1, 2, 3);
		ThreeD d = new ThreeD(6, 7, 5);

		Console.Write("Координаты точки a: ");    a.Show();
		Console.Write("Координаты точки b: ");    b.Show();
		Console.Write("Координаты точки с: ");    c.Show();
		Console.Write("Координаты точки d: ");    d.Show();

		Console.WriteLine();//Глава 9. Перегрузка операторов 283

		if(а > с) Console.WriteLine("а > с истинно");
		if(а < с) Console.WriteLine("а < с истинно");
		if(а > b) Console.WriteLine("а > b истинно");
		if(а < b) Console.WriteLine("а < b истинно");
		if(а > d) Console.WriteLine("а > d истинно");

		else if(а < d) Console.WriteLine("a < d истинно");
			else Console.WriteLine("Точки a и d находятся на одном расстоянии " +
								   "от начала отсчета");
	}
}


Спасибо : )
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Проверяется какой вектор дленнее
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы