본문 바로가기
SWE/C++ OOP

추상클래스를 인스턴스화할 수 없습니다

by S나라라2 2020. 1. 4.
반응형

c++언어에서는 멤버 메서드 중에 순수 가상 메서드를 하나라도 갖고 있는 클래스는 추상 클래스입니다.

 

순수 가상메서드는 virtual키워드로 메서드를 선언하고 메서드 내부를 정의하지 않겠다는 =0;을 표시한 메서드를 말합니다. 그리고 순수 가상 메서드는 다른 oop언어에서 추상 메서드와 같은 의미입니다.

 

다음은 순수 가상 메서드를 갖고 있는 A클래스 개체를 생성하려고 할 때 나오는 오류 화면입니다.

 : 추상 클래스를 인스턴스화할 수 없습니다.

 

->해결방법은 

기반 형식에 순수 가상 메서드가 있을 때 파생 형식에서 이를 재정의해줘야한다.

그렇지 않으면, 파생 형식도 추상 클래스이다. 따라서 파생 형식을 구상 클래스로 만들기 위해서는 반드시 기반 형식에 순수가상메서드를 재정의 해야한다.

반응형