WN_인생기록

다형성에 대해서 좀 더 말해보시겠어요? 본문

C++/면접 대비

다형성에 대해서 좀 더 말해보시겠어요?

WhNi 2024. 3. 20. 12:58

다형성은 보통 오버로드와 오버로딩으로 나뉘는데, 

 

컴파일 시간에 정의되는 다형성과

 

런타임에 정의되는 다형성으로 구분할 수 있습니다.

 

 

컴파일 시간에 정의되는 다형성은 함수 오버로딩, 연산자 오버로딩이 있으며

 

함수 오버로딩과 연산자 오버로딩은 각각의 인수 또는 연산자의 수와 유형에 따라 컴파일 시간에 정의됩니다. 

 

런타임에 정의되는 다형성은 함수 오버라이딩과 가상 함수가 있습니다.

 

함수 오버라이딩과 가상함수는 객체유형을 기반으로 함수 구현을 동적으로 선택하기 때문에 런타임에 정의됩니다. 

 

기본 클래스와 파생 클래스의 관계가 있는 기능들은 런타임에 정의된다고 정리할 수 있습니다.