new_phone <- function(model) {
structure(list(model = model), class = "Phone")
}
# No overloads: a default instead
new_employee <- function(first_name, last_name,
personal_phone = NULL) {
structure(list(first_name = first_name,
last_name = last_name,
personal_phone = personal_phone),
class = "Employee")
}
nokia_phone <- new_phone("Nokia 6610")
kim <- new_employee("Victoria", "Kim",
new_phone("iPhone 18"))
# Arguments by name, in any order
lee <- new_employee(last_name = "Lee",
first_name = "Ann")
no_phone <- is.null(lee$personal_phone)
cat("nokia_phone$model =",
nokia_phone$model, "\n")
cat("kim$first_name =", kim$first_name, "\n")
cat("kim$personal_phone$model =",
kim$personal_phone$model, "\n")
cat("no_phone =", no_phone, "\n")