Open heerucan opened 3 years ago
구조체와 열거형은 데이터 전달 시에 값을 복사해서 보내는 값타입이기 때문에 상속이 불가하고 클래스는 데이터 전달 시 메모리의 위치를 전달하는 참조타입으로 상속이 가능합니다. 값타입은 메모리 주소의 복사본이라고 보면 되고 참조타입은 주소의 원본이라고 보면 됩니다. 따라서 원본 데이터를 보존하고자 할 때는 값타입인 구조체를 주로 사용합니다.
먼저 Class는 참조 타입으로, 데이터를 전달할 때에 값의 메모리 위치를 전달합니다. 상속도 가능합니다. Struct는 값타입으로, 데이터를 전달할 때 값을 그대로 복사하여 전달합니다. Class와 달리 상속은 불가능합니다. Enum은 열거형으로, 연관된 상수를 하나의 이름으로 묶은 자료형입니다. Enum또한 값타입이며, 상속이 불가능합니다.
타입의 차이로써 설명
가장 큰 차이점은 타입의 차이이다. Class는 참조 타입이고, ARC로 메모리를 관리한다. Struct는 값 타입이다. Enum 역시 값 타입이다. 클래스의 경우 동일한 클래스 인스턴스를 여러 개의 변수에 할당한 뒤 값을 변경시키면 할당한 모든 변수에 영향을 준다. 구조체의 경우에는 값 자체를 복사하기 때문에 다른 변수에 영향을 주지 않는다.