디스패치 학습하기 (2) [ Reference Type Dispatch, final ]
·
프로그래밍언어/swift
Reference Type에서의 Dispatch대표적으로 class는 상속 가능성이 있다. 따라서 서브 클래스에서 함수를 호출할 수 있기 때문에 이 때 Dynamic Dispatch를 사용한다. 아래 코드는 다음과 같은 구조를 같는다. 여기서 cat은 Animal(상위) 타입으로 되어있지만 Cat 인스턴스를 업캐스팅해서 가르키고 있는 상황이다.이때는 Animal의 speak를 참조해야하는 것이 아니라 Cat의 speak를 참조해야한다.이처럼 오버라이딩의 가능성이 있으면 어떤 함수가 실행되야할지는 런타임 때 알 수 있기 때문에 vtable을 무조건 참조해야하고 이런 동작을 Dynamic Dispatch라고 부른다. 그렇다면 상속으로 인한 오버라이딩의 가능성이 Dynamic Dispatch를 야기한다면 상..