Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Перегрузка операторов отношений



Операторы отношений (например, "==" или "<") также можно перегружать, причем сделать это совсем нетрудно. Как правило, перегруженный оператор отношения возвращает одно из двух возможных значений: true или false. Это позволяет использовать перегруженные операторы отношений в условных выражениях. Если бы они воз-

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

Рассмотрим версию класса ThreeD, который перегружает операторы "<" и ">".

// Перегрузка операторов "<" и ">".

using System;

// Класс трехмерных координат,

class ThreeD

{

int x, у, z; // 3-х-мерные координаты.

public ThreeD () { х = у = z = 0; }

public ThreeD(int i, int j, int k) {

x = i; у = j; z = k;

}

// Перегрузка оператора "<".

public static bool operator <(ThreeD opl, ThreeD op2)

{

if((opl.x < op2.x) && (opl.у < op2.y) &&

(opl.z < op2.z))

return true;

else

return false;

}

// Перегрузка оператора ">".

public static bool operator >(ThreeD opl, ThreeD op2)

{

if((opl.x > op2.x) && (opl.у > op2.y) &&

(opl.z > op2.z))

return true;

else

return false;

}

// Отображаем координаты X, Y, Z.

public void show()

{

Console.WriteLine(x + ", " + у + ", " + z);

}

class ThreeDDemo

{

public static void Main() {

ThreeD a = new ThreeD(5, 6, 7);

ThreeD b = new ThreeD(10, 10, 10);

ThreeD с = new ThreeD(1, 2, 3);

Console.Write("Координаты точки а: ");

a.show();

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

b.show();

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

с.show();

Console.WriteLine();

if(a > c) Console.WriteLine("a > с - ИСТИНА")

if(a < c) Console.WriteLine("a < с - ИСТИНА")

if(a > b) Console.WriteLine("a > b - ИСТИНА")

if(a < b) Console.WriteLine("a < b - ИСТИНА")

Console.ReadLine();

}

}

При выполнении эта программа генерирует такие результаты:

Координаты точки а: 5, 6, 7

Координаты точки b: 10, 10, 10

Координаты точки с: 1, 2, 3

а > с - ИСТИНА

а < b - ИСТИНА

На перегрузку операторов отношений налагается серьезное ограничение: их следует перегружать парами. Например, перегружая оператор "<", вы также должны перегрузить оператор ">", и наоборот.





Дата публикования: 2015-06-12; Прочитано: 269 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...