Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Struct와 Class와 Enum의 차이를 설명하시오. #4

Open
heerucan opened this issue Aug 22, 2021 · 3 comments
Open

Struct와 Class와 Enum의 차이를 설명하시오. #4

heerucan opened this issue Aug 22, 2021 · 3 comments
Labels

Comments

@heerucan
Copy link

No description provided.

@heerucan heerucan added the Swift label Aug 22, 2021
@heerucan heerucan changed the title struct와 class와 enum의 차이를 설명하시오. Struct와 Class와 Enum의 차이를 설명하시오. Aug 22, 2021
@Taehyeon-Kim
Copy link
Contributor

타입의 차이로써 설명

가장 큰 차이점은 타입의 차이이다. Class는 참조 타입이고, ARC로 메모리를 관리한다. Struct는 값 타입이다. Enum 역시 값 타입이다. 클래스의 경우 동일한 클래스 인스턴스를 여러 개의 변수에 할당한 뒤 값을 변경시키면 할당한 모든 변수에 영향을 준다. 구조체의 경우에는 값 자체를 복사하기 때문에 다른 변수에 영향을 주지 않는다.

@heerucan
Copy link
Author

구조체와 열거형은 데이터 전달 시에 값을 복사해서 보내는 값타입이기 때문에 상속이 불가하고
클래스는 데이터 전달 시 메모리의 위치를 전달하는 참조타입으로 상속이 가능합니다.
값타입은 메모리 주소의 복사본이라고 보면 되고 참조타입은 주소의 원본이라고 보면 됩니다. 따라서 원본 데이터를 보존하고자 할 때는 값타입인 구조체를 주로 사용합니다.

@hyesuuou
Copy link
Member

hyesuuou commented Sep 5, 2021

먼저 Class는 참조 타입으로, 데이터를 전달할 때에 값의 메모리 위치를 전달합니다. 상속도 가능합니다.
Struct는 값타입으로, 데이터를 전달할 때 값을 그대로 복사하여 전달합니다. Class와 달리 상속은 불가능합니다.
Enum은 열거형으로, 연관된 상수를 하나의 이름으로 묶은 자료형입니다. Enum또한 값타입이며, 상속이 불가능합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants