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;
}
우선 멤버의 내부 접근과 외부 접근의 의미를 간략한 코드를 통해 보자면 아래와 같다.
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)
- private으로 멤버가 선언 되면 클래스의 내부에서만의 접근을 허용하겠다는 말이다.
즉 외부에서는 접근하면 컴파일러는 에러는 발생시킨다.
class Test
{
private:
int a;
public:
void plus()
{
a++;
}
};
int main(void)
{
Test h;
h.a++; //private로 선언된 변수를 외부에서 접근 하므로 이 부부은 컴파일시 에러가 발생된다.
h.plus(); //public으로 선언한 함수에 접근하므로 문제될것이 없음
}
private 제한자에 대해 감이 왔을거당
함수를 private로 선언하면 클래스 내부에서 밖에 사용할수 없겠징?? (자바에서는 그런거 같은뎅..)
함수를 private로 선언하면 클래스 내부에서 밖에 사용할수 없겠징?? (자바에서는 그런거 같은뎅..)
반응형