본문내용
{
b=10;
a=15;
}
void geta()
{
cout<<"A.a ="< }
};
int main(void)
{
B b;
b.geta();
return 0;
}
위의 코드를 실행시켜보자. 이번 파트의 처음 예제와는 다르게 컴파일이 되고 부모 클래스의 멤버에도 접근이 되는 것을 알 수 있다.
부모 클래스의 멤버에 직접 접근을 하게 해준 부분이 어딘지 한번 살펴보자.
바로 이 코드 부분이다.
class A
{
protected:
int a;
부모 클래스 A의 멤버 변수가 private : 가 아닌 protected: 로 접근 제한을 하고 있다.
protected 멤버는 접근권한이 private와 똑같다. 하지만 상속 관계에 놓였을 때는 public 과 같은 접근권한 을 가진다. 즉 상속을 받은 자식 클래스에서는 접근 할 수가 있는 멤버이고 상속을 제외한 접근에서는 모두 접근 불가능인 멤버이다.
protected 멤버는 그냥 보기에는 상속 관계에서 자주 사용해도 좋은 문법이다라고 생각 할 수 있다. 하지만 protected 멤버는 어떤 경우에는 결합도를 높일 수 도 있다. 그러므로 잘 생각해서 사용해야 한다.
b=10;
a=15;
}
void geta()
{
cout<<"A.a ="< }
};
int main(void)
{
B b;
b.geta();
return 0;
}
위의 코드를 실행시켜보자. 이번 파트의 처음 예제와는 다르게 컴파일이 되고 부모 클래스의 멤버에도 접근이 되는 것을 알 수 있다.
부모 클래스의 멤버에 직접 접근을 하게 해준 부분이 어딘지 한번 살펴보자.
바로 이 코드 부분이다.
class A
{
protected:
int a;
부모 클래스 A의 멤버 변수가 private : 가 아닌 protected: 로 접근 제한을 하고 있다.
protected 멤버는 접근권한이 private와 똑같다. 하지만 상속 관계에 놓였을 때는 public 과 같은 접근권한 을 가진다. 즉 상속을 받은 자식 클래스에서는 접근 할 수가 있는 멤버이고 상속을 제외한 접근에서는 모두 접근 불가능인 멤버이다.
protected 멤버는 그냥 보기에는 상속 관계에서 자주 사용해도 좋은 문법이다라고 생각 할 수 있다. 하지만 protected 멤버는 어떤 경우에는 결합도를 높일 수 도 있다. 그러므로 잘 생각해서 사용해야 한다.
소개글