package Ġcom . nil ang p ate l . kotlin . operator overload Ċ Ċ data Ġclass ĠCoordinate Point ( var Ġx Point : ĠInt , Ġvar Ġy Point : ĠInt ){ ĊĠĠĠ Ġ// Ġover loading Ġ+ Ġoperator Ġwith Ġplus Ġfunction ĊĠĠĠ Ġoperator Ġfun Ġplus ( another Point : ĠCoordinate Point ) Ġ: ĠCoordinate Point Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCoordinate Point ( x Point Ġ+ Ġanother Point . x Point , Ġy Point Ġ+ Ġanother Point . y Point ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġover loading Ġ- Ġoperator Ġwith Ġminus Ġfunction ĊĠĠĠ Ġoperator Ġfun Ġminus ( another Point : ĠCoordinate Point ) Ġ: ĠCoordinate Point Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCoordinate Point ( x Point Ġ- Ġanother Point . x Point , Ġy Point Ġ- Ġanother Point . y Point ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġvar Ġnum 1 Ġ= Ġ 1 0 ĊĠĠĠ Ġvar Ġnum 2 Ġ= Ġ 5 ĊĠĠĠ Ġprintln ( num 1 + num 2 ) ĊĠĠĠ Ġprintln ( num 1 . plus ( num 2 )) ĊĊĠĠĠ Ġvar Ġpoint 1 Ġ= ĠCoordinate Point ( 2 , 5 ) ĊĠĠĠ Ġvar Ġpoint 2 Ġ= ĠCoordinate Point ( 4 , 3 ) ĊĊĠĠĠ Ġvar Ġpoint 3 Ġ= Ġpoint 1 Ġ+ Ġpoint 2 ĊĠĠĠ Ġvar Ġpoint 4 Ġ= Ġpoint 1 Ġ- Ġpoint 2 ĊĊĠĠĠ Ġprintln ( point 3 ) ĊĠĠĠ Ġprintln ( point 4 ) Ċ Ċ }