Основы объектно-ориентированного программирования на языке C# book | Page 144

7 Класи (x,y)++ це (x+1,y+1) (x,y)-- це (x-1,y-1) -(x,y) це (-x,-y) . Розглянемо програму, що демонструє перевантаження операторiв. using System; class Point2D { public int x; public int y; public Point2D() { x = 0; y = 0; } public Point2D (int x, int y) { this.x = x; this.y = y; } // повертає (нову) точку, кожна з координат якої бiльше за вiдповiдну // координату точки-аргументу на одиницю public static Point2D operator ++ (Point2D par) { return new Point2D(par.x+1, par.y+1); } // повертає (нову) точку, кожна з координат є сумою // вiдповiдних координат двох точок аргументiв public static Point2D operator +(Point2D par1, Point2D par2) { return new Point2D(par1.x + par2.x, par1.y + par2.y); } // повертає (нову) точку, кожна з координат якої менше за вiдповiдну // координату точки-аргументу на одиницю public static Point2D operator -- (Point2D par) { return new Point2D(par.x-1, par.y-1); } // повертає (нову) точку, кожна з координат є рiзницею // вiдповiдних координат двох точок аргументiв public static Point2D operator -(Point2D par1, Point2D par2) { return new Point2D(par1.x - par2.x, par1.y - par2.y); } public void Display(Point2D key) { Console.WriteLine("x={0}, y={1}", key.x, key.y); } 144