구조체와 클래스의 차이

donotinto·2024년 4월 29일

구조체

  • 값 타입이다.
    - 메모리가 스택 영역에 생성된다.
  • 변수마다 새로운 객체가 담긴다.
    - 새로운 변수에 구조체 변수를 할당해도 새로운 구조체가 생성된다.
struct Simple {
	var count: Int = 0
}

var a = Simple()
var b = a

위에서 변수 a에 Simple 객체를 생성하여 b변수에 a변수를 담더라도, b변수와 a변수가 가지고 있는 객체는 서로 다르다.

클래스

  • 참조 타입이다.
    - 메모리가 힙 영역에 생성된다.
  • 변수는 클래스 인스턴스의 메모리 주소만을 가지고 있는다.
    - 새로운 변수에 클래스 변수를 할당하면 해당 인스턴스의 메모리 주소를 가지게 된다.
  • ARC로 메모리가 관리된다.

0개의 댓글