본문 바로가기

Cpp

인터페이스

인터페이스는 특정 기능을 구현할 것을 약속한 추상 형식을 말합니다.

c++에서는 순수 가상 함수를 이용하여 정의할 수 있습니다.

 

인터페이스는 멤버 필드나 구체적으로 구현한 함수를 갖지 않고 특정 기능을 약속한 함수만 가지게 됩니다.

그리고 모든 멤버는 사용하는 개발자와의 약속으로 전부 public 으로 접근 지정합니다.

 

c++ 에서는 구조체가 디폴트 제한자가 public 이기 때문에 구조체를 이용하여 인터페이스를 정의하는 경우도 있습니다.

 

개발자들의 약속으로 인터페이스의 이름은 I로 시작합니다. 당연히 객체 생성이 불가능하며

인터페이스를 상속받은 파생 클래스도 인터페이스의 순수 가상함수를 재정의 해야만 객체를 생성할 수 있습니다.

 

추상 클래스와 인터페이스의 차이점

1. 인터페이스는 상태나 구현을 포함할 수 없는 반면, 추상 클래스는 포함할 수 있다.

2. 인터페이스를 구현하는 클래스는 해당 인터페이스의 모든 메소드를 구현해야하는 반면, 추상 클래스는 추상 메소드를 구현하지 않고 상속될 수 있다.

3. 인터페이스는 다중 상속일 수 있지만 추상 클래스는 단일 상속만 가능하다.

4. 추상 클래스는 구성 요소를 쉽고 간단하게 버전화 할 수 있는 방법을 제공하는 반면, 인터페이스는 한 번 생성되면 변경될 수 없기 때문에 인터페이스의 새로운 버전이 필요한 경우 완전히 새로운 인터페이스를 생성해야한다.

5. 추상 클래스는 주로 밀접하게 관련된 클래스에 사용되어야 하는 반면, 인터페이스는 관련 없는 클래스에 공통된 기능을 제공하는 데 가장 적합하다.

 

 

'Cpp' 카테고리의 다른 글

비트 연산자  (0) 2023.02.28
더블 버퍼링  (0) 2023.02.27
추상클래스  (0) 2023.02.27
외부링크 내부링크  (0) 2023.02.23
변수주기  (0) 2023.02.23