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.у + 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(а b) Console.WriteLine("а > b истинно");
if(а d) Console.WriteLine("а > d истинно");
else if(а < d) Console.WriteLine("a < d истинно");
else Console.WriteLine("Точки a и d находятся на одном расстоянии " +
"от начала отсчета");
}
}
Спасибо : )

21 Авг 2019 в 06:03
188 +1
0
Ответы
1

Перегрузка операторов < и > в данном случае означает, что мы можем сравнивать объекты класса ThreeD по их координатам. В данном случае, когда мы используем оператор < или > для сравнения двух объектов ThreeD, мы сравниваем их расстояние от начала координат в трехмерном пространстве.

В данном коде, в перегруженных операторах < и > происходит вычисление евклидовой длины для каждой из точек (определенных объектами ThreeD) и сравнение их между собой. Если расстояние от точки op1 до начала координат меньше, чем расстояние от точки op2 до начала координат, то оператор < вернет true. Аналогично, если расстояние от точки op1 до начала координат больше, чем расстояние от точки op2 до начала координат, то оператор > вернет true.

Таким образом, эта перегрузка операторов позволяет нам сравнивать объекты ThreeD на основе их координат в трехмерном пространстве.

20 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 95 924 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир