이 게시물에서는 C++에서 함수 오버로딩과 함수 오버라이드의 차이점을 이해할 것입니다.
과부하
-
오버로딩 중에는 키워드가 사용되지 않습니다.
-
프로토타입은 매개변수의 수 또는 유형에 따라 다릅니다.
-
컴파일 시간 동안 발생합니다.
-
생성자는 오버로드될 수 있습니다.
-
소멸자는 오버로드될 수 없습니다.
-
초기 바인딩을 달성하는 데 사용할 수 있습니다.
-
호출되는 함수의 버전은 사용 중인 매개변수의 수 또는 유형에 따라 결정됩니다.
-
함수는 같은 이름, 다른 수 또는 매개변수 유형으로 재정의됩니다.
재정의
-
프로토타입은 전체적으로 동일하게 유지됩니다.
-
런타임에 발생합니다.
-
가상 기능은 재정의할 수 없습니다.
-
소멸자를 재정의할 수 있습니다.
-
재정의는 후기 바인딩이라고도 합니다.
-
재정의될 함수는 기본 클래스에서 '가상' 키워드가 앞에 옵니다.
-
클래스 객체의 주소는 포인터에 의해 함수가 호출되는 포인터에 할당됩니다.
-
함수 정의 시 메인 클래스에서 'virtual' 키워드가 앞에 옵니다.
-
파생 클래스에서도 같은 함수를 'out' 키워드로 재정의합니다.