C++/C++

C++ 접근 지정자(Access specifiers)

Elan 2021. 6. 13. 15:46

Access specifiers

 

접근 제어자(Access Modifier)라고도 불리며, 클래스(또는 구조체) 멤버에 대한 접근 범위를 설정하는 속성이다.

 

1. 멤버에 부여되는 접근 지정자

 

public속성이 부여된 멤버는 어디서든지 접근이 가능한다.

 

protected속성이 부여된 멤버는 해당 클래스를 직접 상속한 클래스에서만 접근이 가능하다.

 

private속성이 부여된 멤버는 해당 클래스의 내부에서만 접근이 가능하다.

 




2. 상속 시 부여되는 접근 지정자


public
상속은 부모 클래스에서 public보다 접근 범위가 넓은 멤버를 public으로 바꾸어서 상속한다.

즉, 부모 클래스의 멤버 속성을 그대로 상속한다.

따라서 public 멤버는 public으로 상속, protected 멤버는 protected으로 상속, private 멤버는 private으로 상속된다.



protected 상속은 부모 클래스에서 protected보다 접근 범위가 넓은 멤버를 protected로 상속한다.

따라서 public 멤버는 protected으로 상속, protected 멤버는 protected으로 상속, private 멤버는 private으로 상속된다.


 

private 상속은 부모 클래스에서 private 보다 접근 범위가 넓은 멤버를 모두 private으로 상속한다.

따라서 모든 멤버는 private으로 상속된다.

 

 

 

 

상속 Cheat sheet

 

아래표를 잘 숙지하여, 맴버의 접근 지정자에 따른 상속의 접근 지정자의 관계를 파악해보자.

  상속 형태
: public : protected : private
부모 클래스의
멤버 속성
public : public protected private
protected : protected protected private
private : private private private