c++ 다형성 예제

이러한 다형성은 또한 C ++에서 다른 이름으로 이동, 다형성의 실제 예를 고려해 보자. 한 여성은 교실에서 교사처럼 행동하고, 어머니나 딸은 가정에서, 그리고 시장에서는 고객처럼 행동합니다. 여기서 한 사람이 상황에 따라 다르게 행동합니다. 그럼에도 불구하고 다형성을 사용하여 좋은 디자인을 생산하는 데는 생각이 필요합니다. 용어 « 다형성 »은 많은 형태를 의미하는 « 폴리 »+ « 모프 »의 조합입니다. 그것은 그리스어 단어입니다. 개체 지향 프로그래밍에서는 상속, 캡슐화 및 다형성의 3가지 주요 개념을 사용합니다. C++에서 이러한 유형의 다형성을 오버로드라고 합니다. 다형성은 개체가 다른 조건에서 다르게 행동할 수 있도록 하는 OoP의 특징입니다.

C++에는 두 가지 유형의 다형성이 있습니다: 1) 컴파일 시간 다형성 – 정적(또는 초기) 바인딩이라고도 합니다. 2) 런타임 다형성 – 이것은 동적(또는 후기) 바인딩이라고도 합니다. 앞서 설명한 하위 유형 다형성은 파생 된 클래스가 기본 클래스 유형으로 변환되므로 실제로는 강제 다형성이기도합니다. 이 기사에서는 C ++ 언어의 예제를 통해 모든 다형성을 설명하고 다양한 다른 이름을 가진 이유에 대한 통찰력을 제공합니다. 프로그래밍 배경에서 다형성은 크게 두 부분으로 나눌 수 있습니다. 이들은: 형식 이론에서 그것은 또한 포함 다형성으로 알려져 있다. C++ 다형성은 멤버 함수에 대한 호출로 인해 함수를 호출하는 개체 유형에 따라 다른 함수가 실행됩니다. 함수 재정의는 런타임 다형성의 예입니다. 함수 재정의: 자식 클래스가 부모 클래스에 이미 있는 메서드를 선언할 때 이를 함수 재정의라고 하며 여기서 자식 클래스는 부모 클래스를 재정의합니다. 두 개의 파생 클래스가 있는 C++에서 런타임 다형성의 또 다른 예를 살펴보겠습니다. 다형성의 일반적이고 간단한 예는 C++에서 연산자 오버로드로 각각 cin 및 cout 문에 대해 <<를 사용했을 때입니다. 이 비트 별 시프트 연산자는 포함 연산자 역할을 하며 오버로드된 의미는 iostream 헤더 파일에 정의됩니다.

보시다시피 각 자식 클래스에는 함수 영역()에 대한 별도의 구현이 있습니다. 이것은 다형성이 일반적으로 사용되는 방법입니다. 동일한 이름의 함수와 동일한 매개 변수를 가진 다른 클래스가 있지만 구현이 다릅니다. 재정의하는 함수의 경우 동일한 함수에 대한 두 가지 정의가 있으며 하나는 부모 클래스이고 하나는 자식 클래스에 있습니다. 함수에 대한 호출은 런타임시 결정되어 함수의 정의를 호출할 지 결정하며, 이것이 런타임 다형성이라고 불리는 이유입니다. 위의 예에서 func라는 단일 함수는 다형성의 속성인 세 가지 다른 상황에서 다르게 작동합니다. 파라메트릭 다형성은 모든 형식에 대해 동일한 코드를 실행하는 수단을 제공합니다. C ++ 파라 메트릭 다형성은 템플릿을 통해 구현됩니다.

C ++에서 런타임 다형성의 간단한 예를 살펴보겠습니다. 임시 다형성은 이름이 같은 함수가 각 형식에 대해 다르게 작동할 수 있도록 합니다. 예를 들어 두 개의 int와 + 연산자가 주어지면 함께 추가됩니다. 두 개의 std:::문자열이 함께 연결됩니다. 이를 오버로드라고 합니다. 종종 다형성, 즉 공용 상속, 기본 클래스 포인터 (또는 참조) 및 가상 함수를 사용하여 더 나은 코드를 작성할 수 있습니다. 이 예제에서는 이름이 같지만 인수 수가 다른 두 함수가 있습니다. 함수 호출 중에 전달하는 매개 변수 수에 따라 호출할 함수가 결정되므로 서로 다른 조건에서 출력이 다르기 때문에 다형성의 예로 간주됩니다.