C++에서 인터페이스란?

C Eseo Inteopeiseulan



일반적으로 추상 클래스로 알려진 인터페이스는 클래스의 구현을 커밋하지 않고 클래스의 동작을 설명하는 소스일 뿐입니다. C++ 프로그래밍에는 내장된 인터페이스 개념이 없습니다. 인터페이스 생성을 시작하려면 먼저 순수 가상 함수로만 추상 클래스를 설정해야 합니다.

C++의 인터페이스는 추상 클래스를 사용하여 적용됩니다. 반면에 클래스 내부의 적어도 하나의 함수가 순수 가상 함수로 선언된 경우 클래스를 추상 클래스라고 합니다.

순수 가상 함수란?

그만큼 순수 가상 기능 사용자가 정의가 아닌 함수만 선언한다는 의미입니다. 메서드/함수 재정의는 파생 클래스에서 순수 가상 메서드를 구현하는 데 사용됩니다. 함수가 아래와 같이 클래스 내부에 설명되어 있으면 순수 가상 함수로 간주됩니다.







다음은 a의 구문입니다. 순수 가상 기능 교실의.



수업 {
공공의 :
// 순수 가상 함수
가상 더블 게타리아 ( ) = 0 ;

사적인 :
더블 길이 ; // 방의 길이
더블 너비 ; // 방의 너비
} ;

추상 클래스란?

특별히 기본 클래스 역할을 할 목적으로 만들어진 클래스의 이름은 추상 클래스 . 최소한 하나의 순수 가상 함수가 추상 클래스에 있어야 합니다. 여기에는 변수와 표준 함수가 포함될 수 있습니다. 추상 클래스가 가진 파생 클래스는 기본 클래스의 순수 가상 함수를 구현해야 합니다. 그렇지 않으면 추상 클래스가 됩니다.



기본 클래스가 호출되는 순수 가상 함수를 적용하기 위해 부모 클래스가 기본 클래스에 대한 인터페이스를 제공하는 다음 예제를 고려하십시오. getArea() . 서로 다른 두 클래스는 같은 것을 사용합니다. getArea() 함수이지만 두 경우의 출력은 서로 다릅니다.





#include
사용 네임스페이스 성병 ;
수업 모양
{
공공의 :
가상 정수 게타리아 ( ) = 0 ;
무효의 setWidth ( 정수 )
{
너비 = ;
}

무효의 길이 설정 ( 정수 l번째 )
{
길이 = l번째 ;
}

보호 :
정수 너비 ;
정수 길이 ;
} ;

수업 직사각형 : 공공의 모양
{
공공의 : 정수 게타리아 ( )
{
반품 ( 너비 * 길이 ) ;
}
} ;

수업 삼각형 : 공공의 모양
{
공공의 : 정수 게타리아 ( )
{
반품 ( 너비 * 길이 ) / 2 ;
}
} ;

정수 기본 ( 무효의 )
{
직사각형 R ;
삼각형 T ;
아르 자형. setWidth ( 9 ) ;
아르 자형. 길이 설정 ( 5 ) ;
쿠우트 << '사각형 영역: ' << 아르 자형. 게타리아 ( ) << ;
티. setWidth ( 9 ) ;
티. 길이 설정 ( 5 ) ;
쿠우트 << '삼각형의 면적: ' << 티. 게타리아 ( ) << ;
반품 0 ;
}

산출



인터페이스의 중요성

순수한 추상 클래스(Interface)에서 파생된 모든 클래스는 항상 기본 클래스의 각 메서드, 즉 Interface를 구현해야 합니다. 인터페이스 포인터는 클래스뿐만 아니라 함수에도 전달될 수 있으므로 거기에서 파생된 클래스의 함수를 호출할 수 있습니다.

인터페이스 사용 규칙은 무엇입니까

C++에서 인터페이스를 사용하기 위해 사용자가 따라야 하는 다음 규칙이 있습니다.

  • 순수 가상 함수만 선언하십시오.
  • 순수 가상 기능에 0만 할당되었습니다.
  • 클래스의 인터페이스를 만들지 마십시오.
  • 기본 추상 클래스에 대한 참조를 사용하여 파생 클래스의 인스턴스에 대한 포인터를 만들 수 있습니다.

다음 코드에서 인터페이스 리눅스힌트 , 순수 가상 메서드를 사용하여 추상 클래스를 생성하고 그 기능을 자식 클래스에 적용하는 것과 같이 반환 문자열() 인터페이스 규칙에 따라 main 함수의 메소드.

#include
#include
#include <문자열>
사용 네임스페이스 성병 ;

수업 리눅스힌트
{
공공의 :
가상 문자열 반환 문자열 ( ) = 0 ;
} ;
수업 어린이 : 공공의 리눅스힌트
{
공공의 :
문자열 반환 문자열 ( )
{
반품 '안녕하세요 리눅스힌트' ;
}
} ;
정수 기본 ( )
{
자식 child_object ;
리눅스힌트 * pntr ;
pntr = & child_object ;
쿠우트 < 반환 문자열 ( ) ;
반품 0 ;
}

산출

결론

인터페이스는 C++에서 필요한 클래스를 구현하는 데 필요한 클래스 동작을 설명하는 추상 클래스입니다. 위에서 언급한 지침은 초보자가 인터페이스 작업을 통해 C++ 프로그래밍 기술을 향상시키는 데 매우 중요합니다. C++에서 인터페이스 구현을 배우는 데 도움이 되는 몇 가지 예도 찾을 수 있습니다.