본문 바로가기
Programming/Swift

[Swift] struct와 class

by Eisen Sophie 2020. 10. 18.

struct

- instance는 value type이다.

 

- 정의

struct 구조체 이름{

property and method

}

 

ex) 

struct info
{
	var name: String
    var height: Int
}
var myInfo1: Info = Info(name: "Kim", height: 100)
myInfo1.name = "Koon" //변경 가능
myInfo1.height = 0 // 변경 가능


let myInfo2: Info = Info(name: "Park", height: 110)
myInfo2.name = "Soon" //변경 불가
myInfo2.height = 10 //변경 불가

 

 

class

- instance는 reference type이다.

 

-정의

class 클래스 이름{

property and method

}

 

ex)

class info
{
	var name: String
    var height: Int
}
var myInfo1: Info = Info(name: "Kim", height: 100)
myInfo1.name = "Koon" //변경 가능
myInfo1.height = 0 // 변경 가능


let myInfo2: Info = Info(name: "Park", height: 110)
myInfo2.name = "Soon" //변경 가능
myInfo2.height = 10 //변경 가능

 

struct에서는 안되던게 class에서는 가능하다.

 

class의 인스턴스는 참조 타입이므로 property value들을 변경하는 것이 가능하다.

 

 

-클래스 인스턴스 생성후 인스턴스 소멸

class info
{
	var name: String
    var height: Int
    
    deinit{
    	print("instance has been deleted")
    }
}

var dog: info = info()
dog = nil

 

 

 

 

c++ struct과 다른점들:

- 거이 똑같다.

 

c++ class와 다른점들:

- c++에서는 *를 붙이지 않으면, 참조 타입이 아니다.

- swift에서는 class 인스턴스가 default로 참조 타입이다.