본문 바로가기

C++

[22] 추상 클래스

728x90

순수 가상 함수

가상 함수의 끝을 다음과 같이 만드는 것입니다.

 

 

추상 클래스

순수 가상 함수를 갖고 있는 클래스를 말합니다.

추상 클래스는 본체가 없으며, 객체를 생성할 수도 없습니다. 하지만, 추상 클래스의 파생 클래스는 객체를 생성할 수 있습니다. 추상 클래스의 객체를 생성하려고 하면 오류가 발생합니다.

 

 

추상 클래스 사용이유

추상 클래스를 사용하면 반드시 파생 클래스에서 가상 함수의 정의를 해줘야 합니다. 이렇게 강제한 덕분에 함수호출 코드를 오류없이 하나로 통합해서 관리할 수 있게 됩니다. 이렇게 추상 클래스를 사용하면 이해하기 쉬운 코드를 만들 수 있습니다.

 

 

실시간 형식 정보

RRTI(RunTime Type Information)이라고 합니다. C++컴파일러에 포함된 기능으로, 런타임 시 객체의 자료형에 관한 정보를 드러내는 메커니즘입니다.

객체의 유형을 실행시에 결정하도록 허용합니다.

 

 

typeid 연산자

실시간 형식 정보를 구하려면 typeid 연산자를 사용합니다. 이것을 통해 객체의 클래스를 알아낼 수 있습니다.

typeid 연산자를 사용하려면 먼저 <typeinfo>헤더파일을 인클루드 해야 합니다.

위와 같이 typeinfo 클래스의 name멤버 함수를 통해 객체의 클래스 이름도 알 수 있습니다.

또, 조건문을 통해 name( )을 빼고 비교해서 조건에 맞는 클래스의 경우 분기 처리를 해줄 수 있습니다.

 

728x90

'C++' 카테고리의 다른 글

[24] 예외 처리  (0) 2021.05.09
[23] 클래스 계층  (0) 2021.05.07
[21] 가상함수  (0) 2021.05.06
[20] 상속  (0) 2021.05.06
[19] 정적 멤버  (0) 2021.05.04