2010-12-14 3 views
4

클래스에서 보호 된 데이터 멤버를 선언 할 때 외부 세계에 액세스 할 수 없지만 파생 클래스를 선언 할 때 데이터 멤버 및 데이터 함수가 보호됩니다. 내 질문은보호 된 데이터 멤버 및 데이터 함수

파생 클래스에서 파생 된 클래스에 액세스 할 수 있습니까?

답변

6

예, 보호 된 데이터 멤버는 상속 계층 구조의 맨 아래에서 액세스 할 수 있습니다.

일반적으로 보호 된 데이터를 더 잘 피할 수 있습니다. 또 다른 방법은 개인 데이터에 액세스하는 보호 된 방법을 작성하는 것입니다. 이렇게하면 데이터가 단일 클래스 내에 캡슐화됩니다. 또한 데이터 변경에 대한 중단 점을 쉽게 설정할 수 있습니다.

2

예. (당신은 간단하게 그것을 시도해 볼 수있었습니다.)

3

실제로 보호 된 데이터 멤버는 보호 된 상속과 공개 상속을 통해서만 액세스 할 수 있습니다.

class Base 
{ 
protected: 
int iBase; 
}; 

class Derived : private Base 
{ 
// iBase not accessible 
}; 
: 여기

는 보호 부재가 파생 된 클래스에 액세스 할 수없는 예이다