C++ 추상 클래스 Abstract Class

Intro

추상 클래스의 이해

순수 가상 함수

실행의 목적이 아니라면 기본 클래스의 가상함수에 코드를 작성할 필요가 없으므로 선언만 있는 순수 가상 함수를 사용한다.

예시

class Shape {
public:
    virtual void draw()=0; // 순수 가상 함수
}

추상 클래스

최소 하나의 순수 가상 함수를 가진 클래스를 추상클래스 라고 한다.

추상 클래스는 불완전한 클래스이므로 인스턴스(객체)를 생성할 수 없다.

Shape shape; // 컴파일 오류
Shape *p = new Shape(); // 컴파일 오류

추상클래스에 대한 포인터 선언은 문제없다.

Shape *p;

추상 클래스의 목적

추상클래스는 인스턴스 생성이 목적이 아니라 상속을 위한 기본 클래스로 활용된다.

또한 순수 가상 함수를 통해 인터페이스 역할을 한다.

추상 클래스의 상속

추상클래스를 상속받는 클래스도 추상 클래스가 된다.

상속 받은 추상클래스도 마찬가지로 객체를 생성할 수 없다.

하지만 상속 받은 모든 순수 가상함수를 오버라이딩하여 구현하면 객체를 생성할 수 있다.

참고 자료

황기태, 명품 C++ Programming, 생능출판사,2013, 438쪽

댓글남기기