다음을 통해 공유


기본 클래스에 대 한 액세스 지정자

기본 클래스의 멤버를 파생된 클래스에서 액세스할 수 있는 두 가지 요소 컨트롤입니다. 파생된 클래스에서 상속 된 멤버에 액세스할 수 이러한 같은 요소를 제어합니다.

  • 여부는 파생된 클래스 사용 하 여 기본 클래스를 선언는 공용 액세스 지정자에는 클래스 머리 (클래스 머리 문법 섹션에서 설명한 클래스 형식 정의).

  • 어떤 기본 클래스의 해당 멤버에 대 한 액세스가입니다.

다음 표에서 이러한 요소와 기본 클래스 멤버에 액세스를 확인 하는 방법을 보여 줍니다.

기본 클래스에서 멤버에 액세스

private

protected

Public

파생 액세스에 관계 없이 항상 액세스할 수 없습니다

개인 전용 파생을 사용 하는 경우 파생된 클래스에서

개인 전용 파생을 사용 하는 경우 파생된 클래스에서

 

파생된 클래스에서 보호 된 파생을 사용 하는 경우 보호

파생된 클래스에서 보호 된 파생을 사용 하는 경우 보호

 

Public 파생을 사용 하는 경우 파생된 클래스에서 보호 된.

Public 파생을 사용 하는 경우 파생된 클래스에서 공개

다음 예제는 이러한 과정을 보여 줍니다.

// access_specifiers_for_base_classes.cpp
class BaseClass
{
public:
    int PublicFunc();    // Declare a public member.
protected:
    int ProtectedFunc(); // Declare a protected member.
private:
    int PrivateFunc();   // Declare a private member.
};

// Declare two classes derived from BaseClass.
class DerivedClass1 : public BaseClass
{
};

class DerivedClass2 : private BaseClass
{
};

int main()
{
}

DerivedClass1, 멤버 함수 PublicFunc public 구성원 인 및 ProtectedFunc 때문에 보호 된 멤버는 BaseClass 공용 기본 클래스입니다.PrivateFuncprivate입니다 BaseClass, 및 모든 파생된 클래스에 액세스할 수 없습니다.

DerivedClass2, 함수 PublicFunc 및 ProtectedFunc 전용 멤버는 때문에 간주 됩니다 BaseClass 개인 기본 클래스입니다.다시 PrivateFunc 개인 하는 BaseClass, 및 모든 파생된 클래스에 액세스할 수 없습니다.

파생된 클래스는 기본 클래스 액세스 지정자 없이 선언할 수 있습니다.이 경우 파생 파생된 클래스 선언을 사용 하는 경우 개인 것으로 간주 됩니다의 클래스 키워드입니다.파생 파생된 클래스 선언을 사용 하는 경우에 공용으로 간주 되는 struct 키워드입니다.예를 들어, 다음 코드에서

class Derived : Base
...

다음과 동일합니다.

class Derived : private Base
...

마찬가지로 다음 코드:

struct Derived : Base
...

다음과 동일합니다.

struct Derived : public Base
...

개인 액세스를 갖고 있는 것으로 선언 된 멤버 함수에 액세스할 수 있는지 확인 하거나 이러한 함수 또는 클래스를 사용 하 여 선언 하지 않으면 파생 클래스는 friend 기본 클래스에서 선언 됩니다.

A union 형식에 기본 클래스를 사용할 수 없습니다.

[!참고]

개인 기본 클래스를 지정 하는 경우를 명시적으로 사용 하는 것이 되는 private 사용자가 파생된 클래스의 멤버 액세스를 이해 하도록 하는 키워드입니다.

참고 항목

참조

멤버 액세스 제어