컴공생의 다이어리
[c++] class 상속(private, protected, public) 본문
아래 표와 같이 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