[C#] struct VS class

Minsang Kim·2024년 2월 9일
0

기술면접

목록 보기
5/6

오늘의 질문

struct와 class를 비교해서 설명해주세요.

오늘의 답변

구조체(struct)와 클래스(class)는 사용자 정의 형식입니다. 둘의 가장 큰 차이점은 메모리 공간과 상속 여부입니다.
구조체는 값 형식 데이터로써 스택 메모리에 할당되며 상속이 불가능합니다.
클래스는 참조 형식 데이터로써 힙 메모리에 할당되며 상속이 가능합니다.
구조체는 스택 메모리에 저장되어 가비지 콜렉터의 관리를 받지 않기 때문에 성능상의 장점이 있지만, 메모리의 제한으로 스택 오버플로우가 일어날 가능성이 있고 클래스에 비해 사용할 수 있는 메모리가 적기 때문에 두 가지를 적절하게 사용하는 것이 중요합니다.

깊게 보기

구조체

생성자에 제약 조건이 있다.
  • 매개변수가 없는 생성자는 만들 수 없다.
  • 생성자를 생성하려면 모든 필드가 할당되어야 한다.
구조체를 배열이나 리스트로 사용하는 경우 힙에 할당.

+ TMI

클래스 안에 구조체가 들어간다면 ?
  • 클래스의 멤버로 구조체가 있을 경우 : 구조체 포함하여 힙에 할당.
  • 구조체의 멤버로 클래스가 있을 경우 : 클래스는 힙에 할당되고, 구조체는 클래스의 메모리 주소값을 가지고 있는 참조 변수만 포함하여 스택에 할당.

=====================================================

참조

[C#] 구조체와 클래스 차이
C# - struct/class가 스택/힙에 할당되는 사례 정리
C# - 클래스(Class)와 구조체(Struct)에 대해서 알아보자

profile
게임만 하다가 개발자로

0개의 댓글