본문 바로가기

Cpp

추상클래스

하나 이상의 순수 가상 함수를 포함하는 클래스를 추상 클래스라고 한다.

이러한 추상 클래스는 객체 지향 프로그래밍에서 중요한 특징인 다형성을 가진 함수의 집합을 정의할 수 있게 해줍니다.

즉, 반드시 사용되어야하는 멤버 함수를 추상 클래스에 순수 가상 함수로 선언해 놓으면, 이 클래스로부터 파생된 모든 클래스는 이 가상함수를 반드시 재정의해야 합니다.

 

추상 클래스는 정의 되어있지 않은 순수 가상 함수를 포함하므로, 객체를 만들 수 없습니다.(인스턴스 불가)

 

즉, 파생 클래스에서 순수 가상 함수를 모두 오버라이딩하고 나서야 비로소 파생 클래스의 객체를 생성할 수 있습니다.

하지만 추상 클래스의 포인터와 참조는 바로 사용할 수 있습니다. 이를 이용하여 업캐스팅형식의 객체를 선언할 수도 있습니다.

 

추상 클래스의 용도 제한

C++에서 추상 클래스는 다음과 같은 용도로는 사용할 수 없습니다.

 

1. 변수 또는 멤버 변수

2. 함수의 전달되는 인수 타입

3. 함수의 반환 타입 (부분적으로 연산자 오버라이딩을 할 수 없다.)

4. 명시적 타입 변환의 타입

 

출처 :

http://www.tcpschool.com/cpp/cpp_polymorphism_abstract

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

'Cpp' 카테고리의 다른 글

더블 버퍼링  (0) 2023.02.27
인터페이스  (0) 2023.02.27
외부링크 내부링크  (0) 2023.02.23
변수주기  (0) 2023.02.23
Static  (0) 2023.02.23