C++에서 클래스 상속(inheritance)이란 기존에 정의되어 있는 클래스의 모든 멤버 변수와 멤버 함수를 물려받아, 새로운 클래스를 작성하는 것을 의미한다.
ㅇ 기존에 정의되어 있던 클래스를 base class 또는 parent class 또는 super class 라고 한다.
ㅇ 이를 상속받아(→모든 특성을 물려받아) 새로 만들어지는 클래스를 파생(derived) 클래스 또는 자식 클래스, 하위(sub) 클래스라고 한다.
ㅇ 기존에 작성된 클래스를 재활용할 수 있다.
ㅇ class 파생클래스명 : public 부모클래스명 {
// 접근 제어 지시자 : public, protected, private
// 상속시 부모 클래스에서 접근 가능한 멤버는 protected와 public 뿐이다.
}
접근제어 지시자
public | 클래스 외부 접근 허용 | 자식 클래스 접근 허용 |
클래스 내부 접근 허용 | proteced 로 상속을 받으면 부모 클래스를 proteced 로 상속함 | |
protected |
클래스 외부 접근 불가 |
자식 클래스 접근 허용 |
클래스 내부 접근 허용 |
| |
private |
클래스 외부 접근 불가 |
자식 클래스 접근 불가 |
클래스 내부 접근 허용 |
|
예제는 헤더파일(선언부)와 cpp 파일(정의부)를 분리하는 걸 고려하여 코드를 작성했다.
예제1
#include <iostream> // 객체가 소멸되는 순서는 객체가 생성된 순서의 반대다. 출처: https://link2me.tistory.com/1756?category=1075719 [소소한 일상 및 업무TIP 다루기] // 객체가 소멸되는 순서는 객체가 생성된 순서의 반대다. 출처: https://link2me.tistory.com/1756?category=1075719 [소소한 일상 및 업무TIP 다루기] } |
실행결과
참고하면 도움될 게시글
상속과 접근 제어 유투브 강좌 : https://www.youtube.com/watch?v=yWI8GTLsBR8
상속 접근 지정자 : https://thrillfighter.tistory.com/531
'C++ > C++ 문법' 카테고리의 다른 글
C++ STL Vector(벡터) (0) | 2019.12.01 |
---|---|
C++ 포인터 이해 (0) | 2019.11.30 |
C++ 이동 생성자(move constructor), 이동 대입 연산자(Move assignment operator) (2) | 2019.11.28 |
C++ 복사 대입 연산자(copy assignment operator) (0) | 2019.11.28 |
C++ 얕은 복사, 깊은 복사(Shallow Copy vs. Deep Copy) (0) | 2019.11.27 |