클래스는 참조타입이다. 값 타입과 반대로 참조타입은 변수 또는 상수에 할당되거나 함수로 전달될 때 복사되지 않는다. 복사본 대신 존재하는 같은 인스턴스에 대한 참조가 사용된다.
let tenEighty = VideoMode()
tenEighty.resolution = hd
tenEighty.interlaced = true
tenEighty.name = "1080i"
tenEighty.frameRate = 25.0
//다음의 예시는 새로운 상수를 선언하고 VideoMode의 클래스 인스턴스를 참조하도록 설정했다.
//그러면 이제 클래스에 유저가 원하는 데이터들을 써 넣은 새로운 붕어빵 하나가 생겼다.
let alsoTenEighty = tenEighty
alsoTenEighty.,frameRate = 30.0
//클래스는 참조 타입이기 때문에 두개의 상수는 실질적으로 같은 VideoMode인스턴스를 참조한다.
//실제로는 같은 하나의 인스턴스에 tenEighty랑 alsoTenEighty라는 이름을 가지고 있는 것이다.
print(tenEighty.frameRate)
//다음과 같은 경우 30을 출력한다. 25.0을 출력하지 않는다.
if tenEighty == alsoTenEighty {
print("They refers to the same class!"
}
//두 상수가 같은 클래스를 참조한다고 출력된다. 다음과 같이 조건문을 통해서 확인 가능하다.