본문 바로가기

교육/Swift

[swift] 구조체와 클래스

1. 구조체

값타입


2. 클래스

참조타입, 상속가능, 소멸자 가능, reflection등으로 동적 타입 검사 가능


3. 샘플 코드

// 구조체는 무조건 stack, 대입

struct SPoint

{

    var x : Int = 0

    var y : Int = 0

}


// class 무조건 heap, 객체가 heap 있고 cp1 가리킴

class CPoint

{

    var x : Int = 0

    var y : Int = 0

}

var sp1 = SPoint()

var sp2 = sp1 //  복사


sp1.x = 10 // sp1 바뀜


print(sp1.x, sp2.x)


var cp1 = CPoint()

var cp2 = cp1 // 참조 복사


cp1.x = 10 // cp2 같이 바뀜


print(cp1.x, cp2.x)


var p1 = unsafeAddressOf(cp1) // 주소

var p2 = unsafeAddressOf(cp2) // 주소

print(p1,p2) // 같다

/*

 c 경우 타입을 사용자가 놓을 있다.

 int n // stack

 int* p = new int; // heap

 */

'교육 > Swift' 카테고리의 다른 글

[swift] property  (0) 2016.08.08
[swift] init  (0) 2016.08.05
[swift] enum  (0) 2016.08.05
[swift] 클로저  (0) 2016.08.04
[swift] 함수 고급  (0) 2016.08.04