C ++에서 함수 오버로딩 및 재정의를 구현하는 방법은 무엇입니까?



이 기사에서는 OOPS의 매우 중요한 두 가지 개념 인 C ++의 함수 오버로딩 및 재정의에 대해 소개합니다.

C ++는 자연 속에서 다양한 기능을 자랑합니다. 이 세션에서는 C ++에서 함수 오버로딩과 함수 오버라이드를 구현하는 방법에 대해 논의 할 것입니다.

이 기사에서는 다음과 같은 포인터를 다룰 것입니다.





C ++에서 함수 오버로딩 및 재정의에 대한이 기사를 계속 진행합니다.

함수 과부하



이름은 같지만 매개 변수가 다른 함수는 C ++에서 허용되며 호출됩니다. 함수 과부하 . 컴파일 타임 다형성이라고도합니다.

예를 들면 :

sum (int a, float b) sum (int a, int b) sum (int a, int b, int c)

여기에는 이름이 같은 세 가지 기능이 있지만 이들을 구별하는 유일한 점은 매개 변수가 각각 다르다는 것입니다. 따라서 전달 된 매개 변수에 따라 함수가 호출됩니다.



함수의 반환 유형이 다르면 유효하지 않은 것으로 간주됩니다.

C ++에서 함수 오버로딩 및 재정의에 대한이 기사를 계속 진행합니다.

함수 오버로드에 대한 샘플 코드

포함 네임 스페이스 std 클래스 추가 {public : int add (int n1, int n2) {return n1 + n2} int add (int n1, int n2, int n3) {return n1 + n2}} int main (void) {추가 cout< 

산출

출력-C ++에서 함수 오버로딩 및 오버라이드-Edureka

설명

위의 프로그램에서 우리는 덧셈 클래스에 두 가지 기능이 있습니다. 둘 다 이름이 추가되었습니다. 하나에는 2 개의 매개 변수가 있고 다른 하나에는 3 개의 매개 변수가 있습니다.

주 함수에서 a라는 클래스 추가 객체를 생성합니다. 우리는 각각 2 개와 3 개의 매개 변수로 add 함수를 호출하고 add 함수를 호출하여 더하기를 수행합니다.

이것이 함수 오버로딩이 발생하는 방식입니다.

C ++에서 함수 오버로딩 및 재정의에 대한이 기사를 계속 진행합니다.

함수 재정의

파생 클래스에 기본 클래스의 함수와 이름이 같은 함수가 있으면 호출됩니다. 함수 재정의. 두 함수 모두 두 클래스에서 동일한 매개 변수를 가져야합니다.

함수 재정의를위한 샘플 코드

#include using namespace std class BaseClass {public : void disp () {cout<<'Parent Class Function' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Child Class Function' } } int main() { DerivedClass obj = DerivedClass() obj.disp() return 0 } 

산출:

PHP는 문자열에서 배열 만들기

설명:

위의 프로그램에서는 파생 클래스와 기본 클래스에서 동일한 이름을 가진 기본 기능을 보여줍니다. 여기서 객체는 파생 클래스로 만들어 지므로 display를 호출하면 자식 클래스 객체 만 표시됩니다.

C ++에서 함수 오버로딩 및 재정의에 대한이 기사를 계속 진행합니다.

재정의 수행 순서

코드를 고려하십시오.

#include using namespace std class BaseClass {public : void disp () {cout<<'Function of Parent Class' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Function of Child Class' } } int main() { BaseClass obj = DerivedClass() obj.disp() return 0 } 

산출:

설명:

위의 프로그램에서는 파생 클래스와 기본 클래스에서 동일한 이름을 가진 기본 기능을 보여줍니다. 여기에서 이전 프로그램과의 유일한 차이점은입니다. 자식 클래스의 객체를 만듭니다. 자식 클래스 개체에는 기본 클래스의 참조가 제공됩니다. 다른 방법을 사용하여 수행 할 수도 있습니다.

통사론

Parent_class_name :: function ()

위의 예에서는 다음과 같이 사용합니다.

BaseClass :: disp ()

이것은 재정의의 또 다른 방법입니다.

함수 오버로딩 VS 함수 오버라이드

기능 과부하 기능 무시
범위는 동일합니다범위가 다릅니다
서명은 달라야합니다 (예 : 매개 변수).서명은 동일해야합니다.
가능한 과부하 기능 수하나의 재정의 기능 만 가능
상속없이 발생할 수 있음주로 상속으로 인해 발생합니다.

따라서 우리는 'C ++의 함수 오버로딩 및 오버라이드'에 대한이 기사를 끝냈습니다. 자세한 내용은 다음을 확인하십시오. 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 제공합니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.