클래스의 특성을 이용한 디자인 패턴의 시작
위 글은 이재환님의 게임 디자인 패턴 with Unity 인프런 강의를 듣고 남긴 필기입니다.
클래스의 특성을 이용한 디자인 패턴의 시작
- 디자인 패턴은
하위 클래스 객체를상위 클래스 객체에 대입할 수 있다는 점에서 거의 모든 디자인 패턴이 시작한다. - 반대로
상위 클래스 객체는하위 클래스 객체에 대입할 수 없다.왜냐면
하위 클래스 객체는상위 클래스 객체보다 더 많은 멤버를 가질 수 있기 때문이다. 정보가 빈다.하위 클래스 객체는상위 클래스 객체가 갖는 멤버 변수, 함수와 같은 정보를 모두 포함하고, 반대로상위 클래스 객체는하위 클래스 객체보다 갖는 정보가 적기 때문에 이를 억지로 대입하려고하면 정보의 공백이 생겨버린다. 그래서 이를 컴파일러에서 막는다.
하위 클래스에서재정의한 멤버 함수를상위 클래스의 포인터로 호출하면 일반적으로 재정의 전의 함수가 호출된다. 이를 막고하위 클래스의 함수가 호출되게 하려면상위 클래스에서 그 함수를가상 함수로 정의한다.
- 이 결과는
sub클래스의Execute1()함수가 호출된다. - 각각의
virtual과override키워드를 지우면super클래스의Execute1()함수가 호출된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.