private (C++)private (C++)

구문Syntax

private:
   [member-list]
private base-class

설명Remarks

클래스 멤버 목록 앞에 private 오는 키워드는 클래스의 멤버 함수 및 friend 에서만 이러한 멤버에 액세스할 수 있도록 지정 합니다.When preceding a list of class members, the private keyword specifies that those members are accessible only from member functions and friends of the class. 이 설정은 다음 액세스 지정자 또는 클래스 끝까지 선언된 모든 멤버에 적용됩니다.This applies to all members declared up to the next access specifier or the end of the class.

기본 클래스의 이름 앞에 private 오는 키워드는 기본 클래스의 공용 및 보호 된 멤버가 파생 클래스의 private 멤버 임을 지정 합니다.When preceding the name of a base class, the private keyword specifies that the public and protected members of the base class are private members of the derived class.

클래스에서 멤버의 기본 액세스는 전용입니다.Default access of members in a class is private. 구조체나 공용 구조체에서 멤버의 기본 액세스는 공용입니다.Default access of members in a structure or union is public.

기본 클래스의 기본 액세스는 클래스에 대해 전용이고 구조체에 대해 공용입니다.Default access of a base class is private for classes and public for structures. 공용 구조체에 기본 클래스를 사용할 수 없습니다.Unions cannot have base classes.

관련 정보는 클래스 멤버에 대 한 액세스 제어friend, public, protected및 멤버 액세스 테이블을 참조 하세요.For related information, see friend, public, protected, and the member-access table in Controlling Access to Class Members.

/clr 관련/clr Specific

CLR 형식에서 c + + 액세스 지정자 키워드 ( public , privateprotected )는 어셈블리와 관련 하 여 형식과 메서드를 표시 하는 데 영향을 줄 수 있습니다.In CLR types, the C++ access specifier keywords (public, private, and protected) can affect the visibility of types and methods with regard to assemblies. 자세한 내용은 Member Access Control를 참조 하세요.For more information, see Member Access Control.

참고

/LN 로 컴파일된 파일은이 동작의 영향을 받지 않습니다.Files compiled with /LN are not affected by this behavior. 이 경우 관리되는 클래스(공용 또는 전용)가 모두 표시됩니다.In this case, all managed classes (either public or private) will be visible.

END /clr 관련END /clr Specific

예제Example

// keyword_private.cpp
class BaseClass {
public:
   // privMem accessible from member function
   int pubFunc() { return privMem; }
private:
   void privMem;
};

class DerivedClass : public BaseClass {
public:
   void usePrivate( int i )
      { privMem = i; }   // C2248: privMem not accessible
                         // from derived class
};

class DerivedClass2 : private BaseClass {
public:
   // pubFunc() accessible from derived class
   int usePublic() { return pubFunc(); }
};

int main() {
   BaseClass aBase;
   DerivedClass aDerived;
   DerivedClass2 aDerived2;
   aBase.privMem = 1;     // C2248: privMem not accessible
   aDerived.privMem = 1;  // C2248: privMem not accessible
                          //    in derived class
   aDerived2.pubFunc();   // C2247: pubFunc() is private in
                          //    derived class
}

참고 항목See also

클래스 멤버에 대한 액세스 제어Controlling Access to Class Members
C++ 키워드Keywords