제가 대학교 1학년 때 [명품 C++ Programming] 교재로 진행되는 C++ 수업에서 배운 내용을 교재와 ppt를 중심으로 정리한 내용입니다.
(2022.9 ~ 2022.12)
당시에 공부를 위해서 HWP 파일로 정리해 놓은 것을 그대로 올립니다..
🍑순수 가상 함수
- 함수의 정의(코드)가 없고 선언만 있는 가상 함수
멤버 함수의 원형 = 0; 으로 선언
- 기본 클래스의 가상 함수는 실행 목적보다는 파생 클래스에서 재정의 할 함수를 알려주는 역할이므로 굳이 기본 클래스의 가상 함수를 구현할 필요가 없을 때 사용
🍑추상 클래스
추상 클래스
- 최소 하나의 순수 가상 함수를 가진 클래스
- 실행 코드가 없는 순수 가상 함수를 가지기에 불완전한 클래스
- 완전한 클래스가 아니기에 객체 생성 불가능
- 추상 클래스에 대한 포인터 선언 가능
추상 클래스의 목적
- 상속을 위한 기본 클래스로 활용 → 객체 생성 목적X
- 순수 가상 함수를 통해 파생 클래스에서 구현할 함수의 원형을 보여주는 인터페이스 역할
- 추상 클래스의 모든 멤버를 순수 가상 함수로 선언하기 보다 파생 클래스에서 구현해야 할 함수만 선언
추상 클래스 상속
- 추상 클래스를 상속받는 파생 클래스는 자동으로 추상 클래스
→ 순수 가상 함수를 그대로 상속 받기에
추상 클래스의 구현
- 추상 클래스를 상속 받아 파생 클래스에서 순수 가상 함수를 오버라이딩 한다면 파생 클래스는 추상 클래스가 아니다.
추상 클래스의 용도
- 응용 프로그램의 설계와 구현을 분리
→ 책의 목차를 잡고 내용을 쓰는것과 유사
- 추상 클래스로 기본 방향을 잡고 파생 클래스를 목적에 따라 구현하면 작업이 쉬워짐
→ 파생 클래스에서 목적에 따라 순수 가상 함수를 다양하게 구현 가능
- 계층적 상속 관계를 가진 클래스들의 구조를 만들 때 적합