C++ 에는 인터페이스가 없다.
따라서 추상클래스로 인터페이스를 구상한다.
근데 추상클래스와 인터페이스는 어떻게 구분할까?
Interface와 abstract의 차이는 Interface는 함수만 있다는 것이다.
또한 인터페이스는 다음과 같이 정의한다.
// IFlyable.h
class IFlyable
{
public:
virtual void Fly = 0
};
인터페이스는 클래스 명 앞에 I라는 대문자를 붙여준다.
이는 인터페이스임을 명확하게 하기 위해서이다.
또한 함수는 순수가상함수로 만들어준다.
인터페이스는 다중 상속을 허용한다.
인터페이스 정리
인터페이스
- C++은 자체적으로 인터페이스를 지원하지 않는다.
- 순수 추상 클래스를 사용해서 Java의 인터페이스를 흉내낸다
- 순수 가상 함수만 가진다
- 멤버 변수는 없다.
근데 C++에서는 모든지 할 수 있지 않은가..?
가끔 인터페이스에 데이터 넣은 경우도 있긴 하다.
근데... 다중 상속이 되니까 느슨하게 쓰는 것은 지양하도록 하자.
'프로그래밍 언어 > C & C++ 정리' 카테고리의 다른 글
decltype과 템플릿 (0) | 2024.11.27 |
---|---|
Casting - 왜 C스타일 캐스팅은 4개로 나뉘었을까? (0) | 2024.11.24 |
가상 소멸자와 비 가상 소멸자 (0) | 2024.11.21 |
다형성(Polymorphism) (2) | 2024.11.20 |
템플릿의 장단점 (0) | 2024.11.19 |