개발 언어/cpp

CPP 순수 가상 함수(Pure Virtual Function), 추상 클래스(Abstact Class), 인터페이스(Interface)

eeeun:) 2022. 1. 18. 13:17
반응형

순수 가상 함수(Pure Virtual Function)란?

순수 가상 함수는 구현이 없는 virtural 함수!

virtual void function() = 0;
vitural void function() = {}

cpp의 가상 함수는 반드시 재정의할 필요 없다.

가상 함수가 뭔지 모른다면 아래 링크 클릭!

 

하지만 순수 가상 함수은 자식 클래스(파생 클래스)에서 반드시 재정의를 해야 한다!!

 

추상 클래스(Abstract Class)란?

하나 이상의 순수 가상 함수를 포함하는 클래스

 

인터페이스(Interface)란?

인터페이스 정의는 특정 기능을 구현하기로 약속한 추상 형식!

정의는 무슨 말인지 헷갈리니 간단하게 말하면 순수 가상 함수만 가진 클래스!

 

가상 함수를 통해 클래스를 만들 때는 추상 클래스보다는 인터페이스로 만드는 게 좋음!

1. 함수 정의를 빼먹는 실수를 막을 수 있음

2. 상속으로 인해 차지하는 불필요한 메모리 할당을 없앨 수 있음

728x90