About C++ – “클래스 멤버의 접근 권한”
About C++ – “클래스 멤버의 접근 권한”
클래스 선언하기
class 클래스명 {
속성:
자료선언; //=멤버변수
속성:
함수선언; //=멤버함수
}객체변수; // 객체를 만드는 방법 1
클래스명 객체변수; // 객체를 만드는 방법 2
C++에서 클래스를 선언하는 방법입니다. 여기서 알아볼 것은, “속성” 부분입니다. 이것은 무엇을 뜻하는 것일까요?
클래스 멤버의 접근 권한
클래스를 선언할 때, “속성” 부분에서 멤버 변수와 멤버 함수를 선언하기 전에 그들의 속성을 지정합니다. 그것은 클래스 외부에서 멤버에 접근할 수 있는 권한을 나타냅니다.
클래스 멤버의 접근 권한의 종류는 다음의 세 가지가 있습니다.
- private – 해당 클래스 내부에서만 접근할 수 있고, 이것이 기본 속성입니다.
- public – 어디에서나 접근할 수 있습니다.
- protected – private이지만, 자식에게는 접근할 수 있도록 합니다.
클래스 멤버 접근 권한 : private
private 멤버는 클래스 외부에서 직접 접근할 수 없고, 해당 클래스의 멤버 함수만이 접근이 가능합니다. 그리고, 멤버 변수는 보통 private로 선언됩니다.
class Dog{
private: // 속성
int age; // 멤버변수
public:
int getAge(); // 멤버함수
};
Dog Max;
예를 들면, 위의 코드에서 멤버 변수의 속성을 private
로 설정했습니다. 그러므로, age
멤버 함수는 해당 클래스인 멤버함수, getAge()
에서만 접근이 가능하다는 것입니다. Max.getAge()
와 같이 말입니다.
클래스 외부에서 접근할 수 있도록, 속성이 public
인 함수를 제공해야 합니다.
클래스 멤버 접근 권한 : public
public
접근 권한은 클래스 외부에서 멤버에 직접 접근할 수 있도록 합니다. 멤버 함수가 주로 public
으로 선언됩니다. 주로, private
멤버함수에 접근하기 위해 많이 사용됩니다.
클래스 멤버 접근 권한 : protected
동일한 클래스의 멤버 함수와 현재 클래스를 상속받아 생성된 자식 클래스의 멤버함수만이 직접 접근할 수 있습니다. 자신의 멤버함수와 자식의 멤버함수만 접근할 수 있도록 하는 것입니다. – 상속을 하지 않으면, private
속성과 같습니다.