Classes create reference types, so two variables can refer to the same object.

Share one instance

class_references.swift
class ScoreBox {
    var score: Int

    init(score: Int) {
        self.score = score
    }
}

let bonus = 
let original = ScoreBox(score: 10)
let shared = original
shared.score = shared.score + bonus

print("bonus=\(bonus)")
print("original=\(original.score)")
print("shared=\(shared.score)")
class ScoreBox {
    var score: Int

    init(score: Int) {
        self.score = score
    }
}

let bonus = 
let original = ScoreBox(score: 10)
let shared = original
shared.score = shared.score + bonus

print("bonus=\(bonus)")
print("original=\(original.score)")
print("shared=\(shared.score)")
class ScoreBox {
    var score: Int

    init(score: Int) {
        self.score = score
    }
}

let bonus = 
let original = ScoreBox(score: 10)
let shared = original
shared.score = shared.score + bonus

print("bonus=\(bonus)")
print("original=\(original.score)")
print("shared=\(shared.score)")
classes Assigning a class instance to another variable copies the reference. Mutating through either variable changes the same object.