프로그래밍 언어/C & C++ 정리

인터페이스

뽀또치즈맛 2024. 11. 22. 00:06

 
C++ 에는 인터페이스가 없다.
따라서 추상클래스로 인터페이스를 구상한다.
근데 추상클래스와 인터페이스는 어떻게 구분할까?
Interface와 abstract의 차이는 Interface는 함수만 있다는 것이다.
또한 인터페이스는 다음과 같이 정의한다.
 

// IFlyable.h

class IFlyable
{
public:
	virtual void Fly = 0
};

 
인터페이스는 클래스 명 앞에 I라는 대문자를 붙여준다.
이는 인터페이스임을 명확하게 하기 위해서이다.
 
또한 함수는 순수가상함수로 만들어준다.
인터페이스는 다중 상속을 허용한다.
 
 

인터페이스 정리

 

인터페이스

  • C++은 자체적으로 인터페이스를 지원하지 않는다.
  • 순수 추상 클래스를 사용해서 Java의 인터페이스를 흉내낸다
    • 순수 가상 함수만 가진다
    • 멤버 변수는 없다.

 
근데 C++에서는 모든지 할 수 있지 않은가..?
가끔 인터페이스에 데이터 넣은 경우도 있긴 하다.
근데... 다중 상속이 되니까 느슨하게 쓰는 것은 지양하도록 하자.