Study/C++

Class 멤버의 접근 제한자

뿡뿡대마왕 2011. 9. 28. 09:30
반응형
클래스 멤버의 접근 제어에 대해 알아보자 
우선 멤버의 내부 접근과 외부 접근의 의미를 간략한 코드를 통해 보자면 아래와 같다.
 
class Test
{
   public:      //접근 제어 키워드
        int a;
        void plus()
        {
             a++;       // 클래스 내부에서 멤버 변수의 값에 접근
        }
};
 

int main(void)
{
    Test h;
    h.a =10;     //클래스 외부에서 클래스를 선언하여 a값을 변경, 즉 외부 접근
    h.plus();   // 외부 접근
    return 0;
}

위에서 클래스 내에서 값을 증거시키는 부분을 내부 접근이라고 하고 그 이외에는 모부 외부 접근에 해당된다.

그럼 public, private, protected에 대해서 알아 보도록 하장...

접근을 제어하는 영역의 범위를 기주으로 위 세 접근제한자를 그림으로 표시 하자면 아래와 같다.


 
원의 넓이는 접근을 허용하는 범위를 의미한다...
private
 
- private으로 멤버가 선언 되면 클래스의 내부에서만의 접근을 허용하겠다는 말이다.
  즉 외부에서는 접근하면 컴파일러는 에러는 발생시킨다.
 
 class Test
{
      private:
           int a;
     
      public:
        void plus()
       {
              a++;
       }
}; 

int main(void)
{
    Test h;
    h.a++;   //private로 선언된 변수를 외부에서 접근 하므로 이 부부은 컴파일시 에러가 발생된다.
    h.plus(); //public으로 선언한 함수에 접근하므로 문제될것이 없음
}

private 제한자에 대해 감이 왔을거당

함수를 private로 선언하면 클래스 내부에서 밖에 사용할수 없겠징?? (자바에서는 그런거 같은뎅..)



반응형