728x90
반응형

override 2

C++문법/ 가상, Virtual (+ Override)

Virtual이라는 키워드가 C++에 존재한다. 무슨 용도로 쓰일까?? 알아보자 참고로 여기서 가상이라는 것은 실존하지 않는다는 뜻이 절대 아니다. 우선 답부터 말해주자면 동적 바인딩, Dynamic Binding을 위해서 쓰인다. 즉, 컴파일 시에 어떤 함수가 실행될 지 정해지지 않고 런타임 시에 정해지는 것이다. 여기서 동적 바인딩이란 컴파일 시에 정적 타입으로 참조할 주소가 정해지는 것과 달리 객체를 체크해서 참조할 주소를 정하는 것이라 생각하면 된다. 우선 머리에만 넣었다가 이따가 다시 예로 알아보도록 하자. 우선 업캐스팅을 알아보자 (다운 캐스팅도 있지만 생략) 업캐스팅이란 부모 클래스의 타입으로 자식객체를 선언하는 것 다운 캐스팅이란 자식 클래스 타입으로 부모객체를 선언하는 것 질문을 해보겠다..

Member hiding, 하이딩, 은닉 [Unity]

이번엔 약간 처음볼 수도 있는 은닉, hiding에 대해서 알아보려고 한다. 알아보자 바로 무엇인지 정의해보자 자식의 멤버 와 부모의 멤버 간의 서로 메서드를 가리는 것을 의미한다. -> 여기선 부모클래스의 메서드가 숨겨진다. **오버라이딩, Overriding을 생각하면서 약간 조금 다르다고 생각하면 될 것 같다. 상속, 다형성에서 중복된 내용이지만 다시 따로 개념을 꺼내서 다룰 뿐이다. 즉, 부모 타입으로 자식 객체를 생성하는 경우가 잦은데 자식 메서드를 쓰고 싶어도 괜히 부모클래스의 메서드가 실행되니까 이런 기능을 이용하는 것이다. 자식 클래스에서 부모 클래스에서 정의된 이름이 같은 메서드가 정의되면서 부모 메서드를 숨기게 된다. **사실 new 안써도 부모 메서드와 자식 메서드의 이름이 겹치면 자..

728x90
반응형