C++ 접근제어자

jaehun_dev·2022년 12월 1일
0

C++

목록 보기
1/3

접근 제어

접근 제어 지시자를 통해 구조체, 또는 클래스의 멤버들에 대한 접근 권한을 설정할 수 있다. 외부에서 사용자가 알 필요가 없는 정보는 사용자로부터 숨기는 것이 좋다. (정보 은닉) 이를 통해 사용자는 최소한의 정보로 프로그램을 쉽게 사용 가능하다.

Public

멤버가 어떠한 접근 제약도 가지지 않는다.즉 파생 클래스, 다른 클래스, 또는 다른 패키지에서도 모두 해당 멤버에 접근 가능하다. 따라서 private 멤버와 다른 클래스, 또는 프로그램간의 인터페이스 역할을 할 수 있다.

Private

멤버가 외부에 공개되지 않아서 접근이 불가능하며, 클래스 내부에서만 접근 가능하다. (파생 클래스도 불가) 따라서 외부에서 접근을 위해서는, private에 접근하는 public 멤버를 활용해야 한다.
클래스에 접근 제어 지시자를 생략하였을 때의 기본 접근 제어 권한은 private이다.

Protected

protected는 기본적으로 private과 같다. 그러나 다음의 경우 protected에 접근할 수 있다.

  • public 또는 protected로 파생된 클래스

friend

friend는 접근 제어자는 아니다.friend 키워드를 사용하여 클래스나 함수를 명시할 수 있다. friend 함수 또는 클래스는 friend의 private / protected 멤버에 접근 가능하다.

class Friend1 {
private:
	int m1;
    friend class Friend2;		//Friend2가 Friend1의 친구 클래스임을 명시
}

class Firend2 {
public:
	void access_friend(Friend1& f, int m){
    	f.m1 = m;		
        //파생클래스가 아니지만 friend이기 때문에 private / protected 접근 가능
    }
}
profile
취업준비생/코딩&프로젝트 같이 하실분 연락주세요

0개의 댓글