Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 다형성 예제

<시간/>

다형성은 여러 형태를 갖는 것을 의미하는 객체 지향 프로그래밍의 핵심 기능입니다. 이는 C++에서 컴파일 타임 다형성과 런타임 다형성으로 나뉩니다.

컴파일 시간 다형성의 예는 함수 오버로딩 또는 연산자 오버로딩입니다. 런타임 다형성의 예는 함수 재정의입니다.

C++에서 함수 오버로딩을 사용한 다형성의 예는 다음과 같습니다.

예시

#include <iostream>
using namespace std;
class Example {
   public :
   void func(int a) {
      cout << "\nThe value of a: " << a;
   }
   void func(int a, int b) {
      cout << "\nThe value of a: " << a;
      cout << "\nThe value of b: " << b;
   }
   void func(char c) {
      cout << "\nThe value of c: " << c;
   }
};
int main() {
   Example obj;
   cout<< "\nOne int value";
   obj.func(5);
   cout<< "\nOne char value";
   obj.func('A');
   cout<< "\nTwo int values";
   obj.func(7, 2);
   return 0;
}

출력

위 프로그램의 출력은 다음과 같습니다.

One int value
The value of a: 5
One char value
The value of c: A
Two int values
The value of a: 7
The value of b: 2

이제 위의 프로그램을 이해해보자.

클래스 Example의 func() 멤버 함수가 오버로드되었습니다. 필요에 따라 선택할 수 있는 다른 매개변수를 가진 3개의 func() 함수가 있습니다. 이에 대한 코드 스니펫은 다음과 같습니다.

class Example {
   public :
   void func(int a) {
      cout << "\nThe value of a: " << a;
   }
   void func(int a, int b) {
      cout << "\nThe value of a: " << a;
      cout << "\nThe value of b: " << b;
   }
   void func(char c) {
      cout << "\nThe value of c: " << c;
   }
};

main() 함수에서 Example 클래스의 obj 객체가 생성됩니다. func() 함수는 함수 오버로딩을 보여주기 위해 다른 인수로 호출됩니다. 이에 대한 코드 스니펫은 다음과 같습니다.

int main() {
   Example obj;
   cout<< "\nOne int value";
   obj.func(5);
   cout<< "\nOne char value";
   obj.func('A');
   cout<< "\nTwo int values";
   obj.func(7, 2);
   return 0;
}