클래스에서 보호 된 데이터 멤버를 선언 할 때 외부 세계에 액세스 할 수 없지만 파생 클래스를 선언 할 때 데이터 멤버 및 데이터 함수가 보호됩니다. 내 질문은보호 된 데이터 멤버 및 데이터 함수
파생 클래스에서 파생 된 클래스에 액세스 할 수 있습니까?
클래스에서 보호 된 데이터 멤버를 선언 할 때 외부 세계에 액세스 할 수 없지만 파생 클래스를 선언 할 때 데이터 멤버 및 데이터 함수가 보호됩니다. 내 질문은보호 된 데이터 멤버 및 데이터 함수
파생 클래스에서 파생 된 클래스에 액세스 할 수 있습니까?
예, 보호 된 데이터 멤버는 상속 계층 구조의 맨 아래에서 액세스 할 수 있습니다.
일반적으로 보호 된 데이터를 더 잘 피할 수 있습니다. 또 다른 방법은 개인 데이터에 액세스하는 보호 된 방법을 작성하는 것입니다. 이렇게하면 데이터가 단일 클래스 내에 캡슐화됩니다. 또한 데이터 변경에 대한 중단 점을 쉽게 설정할 수 있습니다.
예. (당신은 간단하게 그것을 시도해 볼 수있었습니다.)
실제로 보호 된 데이터 멤버는 보호 된 상속과 공개 상속을 통해서만 액세스 할 수 있습니다.
class Base
{
protected:
int iBase;
};
class Derived : private Base
{
// iBase not accessible
};
: 여기
는 보호 부재가 파생 된 클래스에 액세스 할 수없는 예이다