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 находятся на одном расстоянии " + "от начала отсчета"); } } Спасибо : )
Перегрузка операторов < и > в данном случае означает, что мы можем сравнивать объекты класса ThreeD по их координатам. В данном случае, когда мы используем оператор < или > для сравнения двух объектов ThreeD, мы сравниваем их расстояние от начала координат в трехмерном пространстве.
В данном коде, в перегруженных операторах < и > происходит вычисление евклидовой длины для каждой из точек (определенных объектами ThreeD) и сравнение их между собой. Если расстояние от точки op1 до начала координат меньше, чем расстояние от точки op2 до начала координат, то оператор < вернет true. Аналогично, если расстояние от точки op1 до начала координат больше, чем расстояние от точки op2 до начала координат, то оператор > вернет true.
Таким образом, эта перегрузка операторов позволяет нам сравнивать объекты ThreeD на основе их координат в трехмерном пространстве.
Перегрузка операторов < и > в данном случае означает, что мы можем сравнивать объекты класса ThreeD по их координатам. В данном случае, когда мы используем оператор < или > для сравнения двух объектов ThreeD, мы сравниваем их расстояние от начала координат в трехмерном пространстве.
В данном коде, в перегруженных операторах < и > происходит вычисление евклидовой длины для каждой из точек (определенных объектами ThreeD) и сравнение их между собой. Если расстояние от точки op1 до начала координат меньше, чем расстояние от точки op2 до начала координат, то оператор < вернет true. Аналогично, если расстояние от точки op1 до начала координат больше, чем расстояние от точки op2 до начала координат, то оператор > вернет true.
Таким образом, эта перегрузка операторов позволяет нам сравнивать объекты ThreeD на основе их координат в трехмерном пространстве.