가상함수
페이지 정보
작성일 19-06-16 08:54본문
Download : 가상함수.hwp
프로그램(program]) 이 컴파일될 때 모든 주소들은 상대적이고, 그 주소들은 프로그램(program]) 이 실행될 때는 절대적이 된다
동적 바인딩 - 컴파일시는 호출될 함수로 점프할 번지를 결정하지 않고 빈칸으로 두었다가, 프로그램(program]) 실행시 점프할 번지를 바로 결정하여 함수를 실행하도록 하는 것을 말한다.
가상함수
,기타,레포트
레포트/기타
Download : 가상함수.hwp( 91 )
오버로딩과 오버라이딩 및 함수의 바인딩 등에 관련되어 작성했습니다.
동적 바인딩이 필요한 경우
class Base
{
public:
void Show();
}
void Base::Show() {
printf(`기반 클래스n“);
}
class Derived : public Base…(To be continued )






다.
ex)
main()은 tripleIt()이라는 함수를 호출하고 tripleIt()은 prName()이라는 함수를 호출하다면, 프로그램(program]) 은 두 함수 호출의 실행을 위해 정적 바인딩을 사용한다. 호출한 함수를 컴파일할 때 함수 호출에 적절한 주소를 삽입하는 것이다.가상함수 , 가상함수기타레포트 ,
오버로딩
오버라이딩
함수의 바인딩
정적 바인딩
동적 바인딩
동적 바인딩이 필요한 경우
가상 함수는 어떻게 동작하는가?
가상 소멸자(Virtual Destructor)
가상 복사 생성자(Virtual Copy Constructor)
함수의 바인딩 - 함수를 만들어서 컴파일하면, 각각의 코드가 기계어 명령어로 번역되어 메모리 상의 어딘가에 저장이 된다 그리고 이 함수를 호출하는 부분에는 이 함수가 위치한 메모리 번지가 저장된다
프로그램(program]) 을 실행하면, 次例(차례)로 명령어를 수행하다가 함수를 호출하는 부분을 만나면, 컴파일시 저장된 함수가 있는 메모리 번지로 점르를 해서 함수를 실행하고 원위치로 돌아온다. 정적 바인딩은 함수의 상대적 주소가 컴파일 동안에 알려진다는 것을 의미한다.
정적 바인딩 - 컴파일 할 때 호출될 함수로 점프할 번지가 결정되어 바인딩되는 것을 말한다.
가상함수
설명
순서
오버로딩과 오버라이딩 및 함수의 바인딩 등에 대해서 작성했습니다.
단점 :
1) 프로그램(program]) 을 실행하는 동안 바인딩을 해야 하기 때문에 정적 바인딩을 하는 경우보다 수행 속도가 떨어지게 된다 (거의 무시할 수 있는 수준으로)
2) 바인딩에 필요한 포인터를 가지고 있어야 하므로, 정적 바인딩을 할 때는 필요 없는 메모리가 함수당 4바이트씩 더 필요하다.
이와 같이 함수를 호출하는 부분에 함수가 위치한 메모리 번지를 연결시켜 주는 일을 함수의 바인딩이라고 한다.