virtual 함수는,
최종적으로 오버라이딩 한 함수를 제외하고 나머지 함수는 가려지게 된다.
static binding : 컴파일하는 동안(컴파일-타임)에 호출될 함수가 결정. (호출될 함수가 이미 고정되어 있는것.)
dynamic binding : 컴파일 하는 동안(컴파일-타임)에 호출될 함수가 결정되는 것이 아니라, 실행하는 동안(런-타임)에 호출될 함수가 결정된다. 포인터가 가리키는 객체가 무엇이냐에 따라서 그 문장이 호출되는 함수는 유동적이다.
다형성의 한 예("모양은 같은데 형태는 다르다.")
#include <iostream> class AAA class CCC : public BBB }; int main(void) delete a; |
####virtual 함수를 사용하지 않은 예제결과와 비교해 볼것~!
#include <iostream> class AAA class CCC : public BBB }; int main(void) delete a; |
[오버라이딩 된 함수 호출하기]
방법 : 범위 지정 연산자를 이용.
a->AAA::fuct(); 의 방식으로 사용.
'Language > C++' 카테고리의 다른 글
연산자 오버로딩 (0) | 2011.03.14 |
---|---|
C++ 에서 setw(int num) 함수를 이용하여 깔끔하게 출력하기! (0) | 2011.03.09 |
키워드 explicit & mutable (0) | 2011.03.07 |
static 멤버변수 / 멤버함수(클래스 변수, 클래스 함수) (0) | 2011.03.07 |
const 멤버 함수 / const 객체 (1) | 2011.03.07 |