개요

부모와 자식 클래스간의 상속에 대하여...

 


상속

상속은 자식(하위) 클래스가 부모(상위) 클래스로부터 코드를 물려 받는 것을 이야기한다.

이 정리 문서에서는 public의 상속에 대해서만 다룰 것으로 더 많은 정보를 원한다면 아래 링크를 참고하길 바란다.

Derived Classes C++ Reference

 

C++에서 클래스의 상속은 [상속받을 클래스] : [상속할 클래스] 로 표현한다.

class Base
{
    // 생략
};

class Derived : public Base // 상속받을 클래스 : 상속할 클래스
{
    // 생략
};

 

 

상속을 받을 때 객체의 생성과 소멸 순서

1. Base 생성

2. Derived 생성

3. Derived 소멸

4. Base 소멸

 

상속받은 객체는 부모 클래스부터 생성되어, 자식 클래스부터 소멸된다.

 

 

Protected 접근 지정자

protected 접근 지정자는 클래스 내부 및 자식 클래스에게 접근 권한을 부여한다.

 

public 상속의 의미

부모 클래스의 모든 public 맴버 → 자식 클래스의 public 맴버

부모 클래스의 모든 protected 맴버 → 자식 클래스의 protected 맴버

 

 

다중 상속

클래스는 여러 클래스를 상속받는 것도 가능하다. 이를 다중 상속이라 한다.

class Base1 { };
class Base2 { };
 
class Derived : public Base1, public Base2
{
    // 생략
};

그러나 다중 상속으로 인하여 호출하는 데이터의 출처가 명확하지 않는 경우 오류가 발생할 수 있는데,

이러한 경우를 죽음의 다이아몬드 ( The Deadly Diamond of Death ) 현상이라고 한다.

 

 

728x90

'Program > C (C++,C#)' 카테고리의 다른 글

[C++] 가상 함수  (0) 2022.06.13
자료구조와 알고리즘  (0) 2022.06.07
[C++] Class 기본 함수  (1) 2022.06.02
[C++] 레퍼런스와 클래스  (0) 2022.05.30
객체지향 프로그래밍  (0) 2022.05.30

+ Recent posts