728x90
반응형
Struct | Class | |
type | Value type (= call-by-value) |
Reference type (= call-by-reference) |
메모리 할당 공간 | Stack | Heap |
상속 | X | O |
deinit | X | O |
Struct
- enum과 같이 값 타입이다. (값의 복사가 일어난다)
- struct는 stack 메모리 공간에 할당된다
- stack 메모리 공간은 "컴파일" 시점에 결정된다.
- Thread-safe
- 상속 불가
- 기본적으로는 reference count로 메모리를 관리하지 않으나, 참조를 포함하는 경우에는 reference count를 사용한다
Class
- 참조 타입이다.
- class는 heap 메모리 공간에 할당된다.
- heap 메모리 공간은 "런타임" 시점에 결정된다.
- Thread-unsafe
- ARC로 메모리 관리 (Reference Count)
- Reference count가 0이 되어야 사라짐
- 타입 캐스팅을 통해 런타임에서 인스턴스의 타입을 확인할 수 있다 (as, as!, as?)
- 상속 가능하다
728x90
반응형