Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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+с.
|