접근 지정자
객체 지향 언어에서는 객체를 캡슐화하고, 외부에서 접근 가능한 공개 멤버와 외부 접근을 허용하지 않는 비공개 멤버를 구분한다, C++에는 다음 3가지 멤버 접근 지정자(access specifier)가 있다.
- public(공개)
- private(비공개)
- protected(보호)
멤버에 대한 접근 지정은 클래스 선언부에서 접근 지정자 다음에 콜론(:)을 찍고 멤버들을 선언하는 방식으로 이루어진다.
i.e.
class Sample {
public:
//public 멤버들 선언
private:
//private 멤버들 선언
protected:
//protected 멤버들 선언
};
- private 멤버
private 접근 지정으로 선언된 멤버들로서, 클래스 내의 멤버 함수들에게 접근이 허용된다.
- public 멤버
public 접근 지정으로 선언된 멤버들로서, 클래스 내외를 막론하고 프로그램의 모든 함수들에게 접근이 허용된다.
- protected 멤버
protected 접근 지정으로 선언된 멤버로서, 클래스 내의 멤버 함수와 이 클래스를 상속받은 파생 클래스의 멤버 함수에게만 접근이 허용된다.
접근 지정자는 동일한 클래스 내에서 여러 번 사용될 수 있다. 또한, 접근 지정자가 선언되면 다른 접근 지정자가 선언될 때까지 모든 멤버에 대해 적용된다.
i.e.
class Sample {
private:
//private 멤버 선언
public:
//public 멤버 선언
private: //private 재사용
//private 멤버 선언
};
- 디폴트 접근 지정은 private
접근 지정을 하지 않은 경우 디폴트 접근 지정을 private으로 처리된다. 이것은 캡슐화의 기본 원칙이 비공개이기 때문이다.