1. 클래스 형 변환 규칙
2. 가상 함수
3. 추상 클래스와 인터페이스 상속
클래스 형 변환이란 어떤 개념인가?
상속 관계에 놓은 클래스 간에만 가능하다.
파생 클래스에서 기본 클래스쪽으로 형 변환만 가능하다
is-a 관계가 성립하는 방향으로만 일어난다.
클래스 형 변환 규칙
파생 클래스의 객체는 기본 클래스의 객체로 형 변환 가능
파생 클래스의 포인터는 기본 클래스의 포인터로 형 변환 가능
파생 클래스의 레퍼런스는 기본 클래스의 레퍼런스로 형 변환 가능
파생 클래스의 기본 클래스로 형 변환 경우
1. is - a 관계가 성립하는 쪽으로의 형 변환
2. 파생 클래스 포인터를 기본 클래스 포인터로 형 변환
3.
가상 함수
기본 클래스 포인터로 호출하더라도 파생 클래스에 재정의된 함수를 호출하도록 만들려면?
-> 기본 클래스의 멤버 함수를 가상 함수로 선언
3. 추상 클래스와 인터페이스 상속
순수 가상함수
- 파생 클래스에서 재정의할 함수를 알려주는 역할
- 실행할 코드를 작성할 목적이 아님
- 파생 클래스에서 재정의될 함수에 대해서 미리 원형이 필요하기는 하지만 기본 클래스에서는 아직 구현할 필요가 없을 때 사용
- 순수 가상 함수는 파생 클래스에서 재정의하도록 원형만 미리 준비하는 것이라는 의미, 파생 클래스는 상속 받은 순수 가상 함수를 반드시 재정의해야 한다.
추상 클래스란?
최소한 하나의 순수 가상 함수를 갖는 클래스
- 객체를 생성할 수 없다.
- 포인터 변수나 레퍼런스 변수는 정의할 수 있다.
(파생 클래스 객체를 가리키는 용도, 파생 클래스 객체에 접근하는 인터페이스 역할을 제공)
'3 - 2학기 > 객체 지향 프로그래밍' 카테고리의 다른 글
객체 지향 프로그래밍 : 상속 (0) | 2021.06.13 |
---|---|
객체지향 프로그래밍 : 멤버함수와 클래스의 활용 (0) | 2021.06.13 |
객체지향 프로그래밍 : 생성자와 소멸자 (0) | 2021.06.13 |
객체 지향 프로그래밍: 클래스 기초 (0) | 2021.06.11 |