본문 바로가기
Study/C++

Class 멤버의 접근 제한자

by 뿡뿡대마왕 2011. 9. 28.
반응형
클래스 멤버의 접근 제어에 대해 알아보자 
우선 멤버의 내부 접근과 외부 접근의 의미를 간략한 코드를 통해 보자면 아래와 같다.
 
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로 선언하면 클래스 내부에서 밖에 사용할수 없겠징?? (자바에서는 그런거 같은뎅..)



반응형

'Study > C++' 카테고리의 다른 글

ASSERT의 사용!  (0) 2011.11.14
Inline 함수!  (0) 2011.09.28
Call - by - Reference....  (0) 2011.09.28
namespace 에 대해...  (0) 2011.09.28
디폴트 매개변수와 함수 오버로딩시 주의점!!  (0) 2011.09.28

댓글