1. Inheritance 상속
: C++에서 상속이란, 기존에 정의되어 있는 클래스의 모든 멤버 변수와 멤버 함수를 물려받아 새로운 클래스를 작성하는 것을 말한다. 이 때, 기존에 정의되어 있던 클래스를 기초 클래스(base class) 또는 부모 클래스(parent class), 상위 클래스(super class)라고도 한다. 그리고 상속을 통해 새롭게 작성되는 클래스를 파생 클래스(derived class) 또는 자식 클래스(child class), 하위 클래스(sub class)라고 한다.
2. Inheritance 상속을 사용하는 이유?
1) Class relationship - 클래스 간의 관계를 설정할 때 주로 사용한다.
: Animal 클래스가 있을 때, 이 동물 클래스를 상속받아서 Cat, Dog, Human 클래스로 만들 수 있다.
2) Code reuse - 클래스 간의 관계를 만들면 코드를 재사용 할 수 있다.
: Animal 특징인 잠을 자는 행위 Sleep()를 정의한다면, Cat, Dog, Human은 특별한 정의를 따로 하지 않아도 Sleep() 코드를 그대로 받아와서 사용할 수 있다.
3) Class interface consistency
: 일관적인 Class Interface를 만들 수 있다. 대표적으로 abstract/interface 클래스로 정의하게 되고 세부적으로 pure, virtual function을 통해서 이를 구현해 낸다.
4) Dynamic function binding
: virtual function, virtual table 을 통해서 구현해 내게 된다.
* 실용적인 경우 보통 (3) 과 (4)를 구현해 내기 위해서 상속의 개념을 많이 사용한다.
예제1) 기초적인 상속 개념
사람 오브젝트인 NoHead를 정의하면,
이 NoHead는 Human의 특성인 drive 운전도 할 수 있고, Animal의 특징인 sleep 잠도 잘 수 있는 객체가 된다.
'모던C++ > 상속관계 Inheritance' 카테고리의 다른 글
8. Dynamic Cast _C++ (0) | 2022.09.02 |
---|---|
7. Virtual Inheritance 가상 상속_C++ (0) | 2022.09.01 |
6. 다중 상속 multiple inheritance _ C++ (0) | 2022.09.01 |
5. Pure Virtual Function 순수 가상 함수_ C++ (0) | 2022.09.01 |
4. Virtual Table, Virtual Function _ C++ (0) | 2022.08.31 |
3. 가상 함수 Virtual Function _ C++ / Dynamic Polymorphism (0) | 2022.08.23 |
2. 접근 권한 키워드 - public, private, protected, 파생 클래스 _ C++ (0) | 2022.08.23 |