컴공생의 다이어리

[c++] class 상속(private, protected, public) 본문

Development/C & C++

[c++] class 상속(private, protected, public)

컴공 K 2021. 1. 3. 21:38

아래 표와 같이 private를 어떤 속성으로 상속하든 결과는 private가 되며, protectec는 상속되는 속성에 따라 private 또는 protected가 된다. 그리고 public 또한 상속되는 속성에 따라 private, protected, public이 됨을 알 수 있다.

부모 클래스의 속성 상속 속성 상속시 속성
private private private
private protected private
private public private
protected private private
protected protected protected
protected public protected
public private private
public protected protected
public public public

이는 마치 교집합과 같은 성질을 갖는데, 다음과 같이 범위를 표현할 수 있다.

private<<protected<<public

 

private는 범위가 가장 작기 때문에, 어떤 속성을 만나던 private가 될 수 밖에 없다. 대부분의 상속은 public 상속이다. 따라서 위 표에서 public으로 상속하는 3가지 경우를 잘 알면 된다.

 

 

추가로 private, protected, public에 대한 표는 아래와 같다.

Base 클래스 속성 클래스내에서
접근
객체에서
접근
상속받은 파생 클래스
내에서 접근
상속받은
객체에서 접근
private 가능 불가능 불가능 불가능
protected 가능 불가능 가능 불가능
public 가능 가능 가능 가능

 

728x90

'Development > C & C++' 카테고리의 다른 글

[c++] 클래스 템플릿(Class Template)  (0) 2021.01.05
[c++] 템플릿(template)  (0) 2021.01.04
[c++] 문자열 스트림 (std::stringstream)  (0) 2021.01.03
[c++] std::ofstream 연산자 오버로딩  (0) 2021.01.03
[c++] 파일에 쓰기  (0) 2021.01.03
Comments