Основы объектно-ориентированного программирования на языке 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