|
홍용혁 님이 쓰신 글 :
: 가상함수의 개념과
:
: 빌더에서 어떻게 쓰이는지 갈켜주세요
안녕하십니까?
한꼬맹이 입니다.
가상함수라는 것은 말그대로 가상적인 것입니다.
먼저 가상함수가 아닌 일반함수는 그함수가 호출되는 시점이 컴파일시에 정해져 버립니다.
그래서 프로그램 실행중에 일반 함수를 호출라면 그 호출 주소가 이미 알려져 있다는 말입니다.
다른 말로 정적 바인딩이라고 하지요...
그와 반대로 가상함수는 클래스 상속과 깊은 연관을 같고 있는데.. 우선 이것을 제대로
사용하려면 항상 클래스를 상속받아서 자기부모와 같은 이름으로 자식클래스에 선언을 합니다.
일반 함수와 구별하기 위해서 앞에다 virtual라는 키워드를 추가하지요...
이놈은 컴파일 시점에 호출시점이 정해지는 것이 아니라 실행시점에서 호출시점이 정해 집니다.
만약 이것을 호출하면 부모에 선언된 함수가 호출되는 것이 아니라 자기자손 중 가장
아래의 손자자손에 중복 선언한 그 함수가 호출되는 것이죠 이러한 것을 우리는 '오버라이딩'이라
고 부릅니다. 그리고 이러한 호출 방식을 동적 바인딩이라고 합니다.
더 자세한 것은 C++, java 등 개체 지형언어 책을 참고하세요...
그럼 도움되시길....
|