기능 과부하 란 무엇입니까?

기능 과부하는 동일한 이름이지만 입력 매개 변수 또는 반환 유형이 다른 여러 메소드를 생성 할 수있는 많은 프로그래밍 언어의 기능입니다. 이것은 객체 지향 프로그래밍의 일반적인 기능입니다. 생성자는 특히 여러 개의 다른 과부하 변형을 가질 수 있습니다. 기본적으로 기능 과부하는 두 기능이 매우 유사한 작업을 수행하고 여러 유형의 입력을 수행 할 수있는 경우 유용합니다. 생성자는 명시 적 반환 유형이 지정되지 않기 때문에 쉽게 과부하 될 수 있으므로 생성자의 입력 매개 변수를 변경하는 것은 유효한 과부하입니다.

함수를 과부하 할 수있는 첫 번째 방법은 입력 매개 변수를 변경하는 것입니다. 예를 들어, "ADD"라는 함수를 입력 한 두 가지 정수로 고려할 수 있습니다. 이 기능의 목적은 상당히 분명합니다. 그것은 두 가지 숫자의 합을 찾기위한 것입니다.

두 플로트의 합을 찾기를 원한다면이 funct이온은 적용되지 않습니다. 따라서 두 번째 과부하 기능이 필요합니다. "ADD"라는 함수로 정의되는 두 개의 플로트로 정의됩니다. 함수는 본질적으로 동일하지만 입력이 크게 다르기 때문에 기능 과부하가 필요합니다.

함수를 과부하 할 수있는 두 번째 방법은 입력 매개 변수와 리턴 유형을 모두 변경하는 것입니다. 이전 예제를 사용하면 과부하 된 "ADD"함수 모두 무효 리턴 유형이있는 경우 고려할 수 있습니다. 즉, 그들은 아무것도 돌려주지 않았습니다. 이것은 여전히 ​​유효한 기능 과부하이지만 두 가지 메소드의 리턴 유형도 변경 될 수 있습니다. 오버로드의 또 다른 유효한 인스턴스에서, 두 개의 정수를 취하는 "추가"함수는 해당 정수 합계를 반환 할 수 있으며, 두 십수 소수 숫자를 취하는 "추가"함수는 그 소수점 숫자 합계를 반환 할 수 있습니다.

단순히 반환 유형을 변경합니다그러나 함수는 유효한 기능 과부하로 간주되지 않습니다. 기능의 반환 유형 만 변경하면 모호성이 나타납니다. 반환 유형이 원하는 메소드 서명에서 명확하지 않기 때문입니다. 매개 변수는 모호하게 정의 될 수 있으므로 과부하 된 기능을 올바르게 호출하는 것이 매우 중요합니다. 예를 들어, 전체 숫자가 입력 매개 변수로 구성된 오버로드 된 함수가 있고 매개 변수로 소수점 번호가있는 다른 숫자가있는 경우 누군가가 전체 번호 함수 대신 소수 함수 기능을 호출하거나 동일한 이름을 갖기 때문에 실수로 실수로 호출하는 것이 매우 쉽습니다. 이와 같은 모호한 매개 변수는 가능한 경우 피해야하며, 할 수없는 경우 적절한 과부하 기능이 적절한 시간에 호출되도록주의를 기울여야합니다.

기능 과부하는 다양한 입력 유형으로 관련 기능을 작성하는 데 유용하며 코드에 많은 유연성을 제공합니다. 마지막 고려 사항 중 하나입니다과부하 된 기능은 적절한 주석이 필수적이라는 것입니다. 입력 매개 변수가 다른 특정 상황에 대해 과부하 된 함수의 버전이 어떤지 명확해질 수 있지만, 다른 과부하 파트너와 다른 기능이 무엇을하는지 항상 정확하게 명확하지는 않을 수 있습니다.

.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?