C++ 포큐아카데미

추상클래스는 함수 선언은 있는데 구현이 하나라도 없으면 추상 클래스다. 왜 구현을 안해놓냐?? 자식클래스가 구현을 할 거니깐! 만약 자식 클래스가 구현을 안하면 컴파일 에러가난다! 선언만 있고 구현이 없는 함수를 순수(Pure) 함수라고 한다. 위의 Speak함수는 순수함수다. 순수 가상함수는 virtual void Speack() = 0 처럼 virtual과 = 0 을 붙여주면 된다.

 

 

 

C++ 포큐아카데미

추상 클래스를 object로 만들면 당연히 컴파일 에러가 난다. 구현체가 없는데 어떻게 객체를 만들겠나..

객체를 스택에 만들든, 힙에 만들든 무조건 에러다. 하지만 자식 클래스 Cat을 만든 다음 포인터로 캐스팅 하면 된다. 왜냐하면 가상 테이블 때문에 Cat의 Speak을 호출할 걸 알기때문!

 

 

인터페이스

C++ 포큐아카데미

C++는 인터페이스가 없다. 그래서 순수 가상 함수만으로 이루어진 클래스를 interface라고 C++ 개발자들 끼리 부르기로 했다.

  

C++ 포큐아카데미

 

'C++' 카테고리의 다른 글

C++ 템플릿  (0) 2020.04.21
C++ 객체 백터 Vector  (0) 2020.04.17
C++ iterator 개념  (0) 2020.04.17
C++ 정적 바인딩, 동적 바인딩  (1) 2020.04.09
C++ 멤버함수의 메모리 위치  (0) 2020.04.09

+ Recent posts