[완료] 가상함수의 동작원리에 관한 질문
글쓴이: Axisofworld / 작성시간: 화, 2010/06/08 - 6:40오후
안녕하세요 C++공부에 열을 올리고 있는 학생입니다.
가상 함수의 동작 원리를 제 나름대로 정리 해봤는데 좀 난해 하네요. 제가 정리 한것과 여러분들이 생각 하는 가상함수의 동작원리의 차이점을 좀 알고 싶습니다.
-가상 함수의 동작원리
객체가 생성되면 멤버 함수는 메모리의 Code영역에 있으면서 모든 객체가 공유하게 되는데 클래스에 한개 이상의 가상 함수가 있을경우 컴파일러는 실제 호출되어야 할 함수의 위치 정보를 가지고 있는 가상 함수 테이블(Virtual Talble)이라는 것을 만들고 클래의 객체에는 Virtual Table을 위한 포인터가 멤버 변수로 추가되는데 가상 함수가 있는 객체는 Virtual Table에 있는 함수만을 호출한다.
제가 정리 해놓고도 저도 이해가 잘 안되네요. 소중한 의견 부탁드립니다!!
참고로 C++공부에 이용하고 있는 책은 '열형강의 C++' 입니다.
Forums:
More effective C++ 항목 24를 참고하세요.
:)
:)
-
감사합니다!
댓글 달기