Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Перегрузка бинарных операторов





//пример перегрузки бинарных операторов

using System;

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

class ThreeD

{

int x, y, z; //трехмерные координаты

public ThreeD() { x = y = z = 0; }

public ThreeD(int i, int j, int k) { x = i; y = j; z = k; }

//перегрузить бинарный оператор +

public static ThreeD operator +(ThreeD op1, ThreeD op2)

{

ThreeD result = new ThreeD();

// сложить коордитаны двух точек и возвратить результат.

result.x = op1.x + op2.x; //эти операторы выполняют

result.y = op1.y + op2.y; //целочисельное сложение,

result.z = op1.z + op2.z; //сохраняя свое исходное назначение.

return result;

}

//перегрузить бинарный оператор -.

public static ThreeD operator -(ThreeD op1, ThreeD op2)

{

ThreeD result = new ThreeD();

//обратить внимание на порядок следования операндов:

//op1 - левый операнд, а op2 - правый операнд.

result.x = op1.x - op2.x;//эти операторы

result.y = op1.y - op2.y;//выполняют целочисленное

result.z = op1.z - op2.z;//вычитание

return result;

}

//вывести координаты X, Y, Z.

public void Show()

{

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

}

}

class ThreeDDemo

{

static void Main()

{

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

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

ThreeD c;

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

a.Show();

Console.WriteLine();

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

b.Show();

Console.WriteLine();

c = a + b; //сложить координаты точек a and b

Console.Write("Результать сложения c = a + b: ");

c.Show();

Console.WriteLine();

c = a + b + c; // сложить координаты точек а, b и с

Console.Write("Результат сложения a + b + c: ");

c.Show();

Console.WriteLine();

c = c - a; //вычесть координаты точки a

Console.Write("Результать вычитания c - a: ");

c.Show();

Console.WriteLine();

c = c - b;//вычесть координаты точки b

Console.Write("Результать вычитания c - b: ");

c.Show();

Console.WriteLine();

}

}

Обратите внимание на то, что метод operator+() возвращает объект типа ThreeD. Этот метод мог бы возвратить значение любого допустимого в C# типа, но благодаря тому что он возвращает объект типа ThreeD, оператор + можно использовать в таких составных выражениях, как a+b+с.

Date: 2015-09-02; view: 333; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию