가상 함수와 순수 가상 함수는 virtual 키워드를 이용해서 선언한다는 공통점이 있지만
가상 함수는 파생 클래스가 기반 클래스의 가상 함수를 재정의 하지 않고 사용 할 수 있으며
가상 함수는 기반 클래스에서 구현이 되어 있어야한다. 가상 함수가 포함된 클래스는 인스턴스를 생성할 수 있다.
순수 가상 함수는 파생 클래스가 기반 클래스의 순수 가상 함수를 무조건 재정의해야한다.
순수 가상 함수는 기반 클래스에서 선언만 되어 구현되어 있지 않다. 순수 가상 함수가 1개 이상 포함된 클래스를 추상 클래스라고 하며 인스턴스를 생성 할 수 없다.
가상 함수의 목적은 파생 클래스에서 재정의하여 기반 클래스의 함수를 확장 및 변경 가능하게 한다.
순수 가상 함수의 목적은 클래스를 추상 클래스로 만들며 순수 가상 함수로 선언된 함수를 파생 클래스에서 재정의를 강제하게 만드는 역할을 한다.
'Cpp' 카테고리의 다른 글
해시 테이블 (0) | 2024.05.27 |
---|---|
객체지향의 4대 특성 (0) | 2024.05.27 |
C++에서의 메모리 관리 방식 (0) | 2024.05.16 |
주소 바인딩 (0) | 2024.04.29 |
재귀 함수 (0) | 2024.04.22 |