C++에서는 구조체(또는 클래스)의 멤버에 대한 외부의 참조를 허가할 것인지 금지할 것인지를 지정할 수 있다. 클래스 멤버 데이터 및 함수에 대한 액세스를 제어하여 C++로 작성된 소프트웨어의 무결성을 높일 수 있다.
아래와 같이 클래스 멤버의 액세스 수준을 private, protected 또는 public으로 선언할 수 있다.
■ private : 이 속성을 가지는 멤버는 외부에서 액세스할 수 없으며 구조체의 멤버 함수만 액세스할 수 있다. 외부에서는 프라이비트 멤버를 읽을 수 없음은 물론이고 존재 자체도 알려지지 않는다.
■ public : 이 속성을 가지는 멤버는 외부로 공개되어 누구나 읽고 쓸 수 있고 함수의 경우는 호출할 수 있다. 구조체가 자신의 속성이나 동작을 외부로 공개하는 수단이 되며 퍼블릭 멤버를 소위 인터페이스라고 한다.
■ protected : private와 마찬가지로 외부에서는 액세스할 수 없으나 단, 상속된 파생 클래스는 이 멤버를 액세스할 수 있다. 프라이비트 멤버는 파생 클래스에서조차도 참조할 수 없으며 오로지 자신만이 이 멤버를 참조할 수 있다는 점이 다르다.
클래스 멤버(class 키워드를 사용하여 선언된 클래스 형식의 멤버)에 대한 기본 액세스는 private이고, struct 및 union 멤버에 대한 기본 액세스는 public이다. 두 경우 모두 public, private 또는 protected 키워드를 사용하여 현재 액세스 수준을 변경할 수 있다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | C Programming FAQs(한글번역 pdf문서) | makersweb | 2014.03.18 | 27011 |
4 | C++로 플러그인 개발 | makersweb | 2019.12.08 | 1889 |
3 | 싱글톤 객체생성 패턴에 대해서 | makersweb | 2018.07.01 | 3741 |
» | 클래스 멤버에 대한 액세스 제어 | pjk | 2014.06.27 | 4783 |
1 | 구조체 메모리 저장방식 #pragma pack | pjk | 2014.05.24 | 5445 |