new_point <- function(x, y) {
structure(list(x = x, y = y), class = "Point")
}
# Called for p1 + p2
"+.Point" <- function(e1, e2) {
new_point(e1$x + e2$x, e1$y + e2$y)
}
p1 <- new_point(1, 1)
p2 <- new_point(2, 2)
p3 <- p1 + p2
# p3 = 3 3
p4 <- p3 + new_point(3, 5)
# p4 = 6 8
cat("p3 =", p3$x, p3$y, "\n")
cat("p4 =", p4$x, p4$y, "\n")