[명품 C++ Programming] chapter 9 : 가상 함수와 추상 클래스(2) - 추상클래스

eunee22·2024년 2월 1일

명품 C++ Programming

목록 보기
34/34

제가 대학교 1학년 때 [명품 C++ Programming] 교재로 진행되는 C++ 수업에서 배운 내용을 교재와 ppt를 중심으로 정리한 내용입니다.
(2022.9 ~ 2022.12)
당시에 공부를 위해서 HWP 파일로 정리해 놓은 것을 그대로 올립니다..

🍑순수 가상 함수

  • 함수의 정의(코드)가 없고 선언만 있는 가상 함수
  • 멤버 함수의 원형 = 0; 으로 선언
  • 기본 클래스의 가상 함수는 실행 목적보다는 파생 클래스에서 재정의 할 함수를 알려주는 역할이므로 굳이 기본 클래스의 가상 함수를 구현할 필요가 없을 때 사용

🍑추상 클래스

추상 클래스

  • 최소 하나의 순수 가상 함수를 가진 클래스
  • 실행 코드가 없는 순수 가상 함수를 가지기에 불완전한 클래스
  • 완전한 클래스가 아니기에 객체 생성 불가능
  • 추상 클래스에 대한 포인터 선언 가능

추상 클래스의 목적

  • 상속을 위한 기본 클래스로 활용 → 객체 생성 목적X
    • 순수 가상 함수를 통해 파생 클래스에서 구현할 함수의 원형을 보여주는 인터페이스 역할
    • 추상 클래스의 모든 멤버를 순수 가상 함수로 선언하기 보다 파생 클래스에서 구현해야 할 함수만 선언

추상 클래스 상속

  • 추상 클래스를 상속받는 파생 클래스는 자동으로 추상 클래스
    → 순수 가상 함수를 그대로 상속 받기에

추상 클래스의 구현

  • 추상 클래스를 상속 받아 파생 클래스에서 순수 가상 함수를 오버라이딩 한다면 파생 클래스는 추상 클래스가 아니다.

추상 클래스의 용도

  1. 응용 프로그램의 설계와 구현을 분리
    → 책의 목차를 잡고 내용을 쓰는것과 유사
  2. 추상 클래스로 기본 방향을 잡고 파생 클래스를 목적에 따라 구현하면 작업이 쉬워짐
    → 파생 클래스에서 목적에 따라 순수 가상 함수를 다양하게 구현 가능
  3. 계층적 상속 관계를 가진 클래스들의 구조를 만들 때 적합
profile
보안 공부하는 대학교 4학년 / 시리즈에서 더욱 편하게 글을 찾아보실 수 있습니다:)

0개의 댓글