다음을 통해 공유


클래스 멤버

클래스는 이러한 종류의 멤버를 가질 수 있습니다.

설명

클래스 멤버 목록을 나눌 수 있습니다 private, protected 및 public 액세스 지정자로 알려진 키워드를 사용 하 여 섹션.콜론 : : 액세스 지정자를 수행 해야 합니다.이 섹션에서는 연속 되지 않아도, 멤버 목록에에 여러 번 나타날 수 있습니다, 이러한 키워드를 합니다.키워드와 닫는 중괄호의 다음 액세스 지정자까지 모든 구성원에 대 한 액세스를 지정합니다.

멤버 목록에 멤버 선언이 세미콜론으로 구분 된 ;.참조 하십시오 클래스 멤버 선언 구문.

구성원 목록의 목적은 다음과 같습니다.

  • 지정 된 클래스의 멤버의 전체 집합을 선언 합니다.

  • 다양 한 클래스 멤버에 연결 하는 액세스 (공용, 개인 또는 보호)을 지정 합니다.

구성원 목록 선언에 멤버를 한 번만 선언할 수 있습니다. redeclaration 멤버의 오류 메시지가 생성 됩니다.멤버 목록에 멤버의 전체 집합 이기 때문에 이후의 클래스 선언 사용 하 여 지정 된 클래스에 멤버를 추가할 수 없습니다.

멤버 선언 자는 이니셜라이저를 사용할 수 없습니다.이니셜라이저를 제공 하는 다음 코드에서 볼 수 있듯이 오류 메시지가 생성 합니다.

// class_members1.cpp
// C2864 expected
class CantInit
{
public:
    long l = 7;       // Error: attempt to initialize
                      //  class member.
    static int i = 9; // Error: must be defined and initialized
                      // outside of class declaration.
};
int main()
{
}

각 형식의 개체를 지정 된 클래스에 대 한 비정적 멤버 데이터의 별도 인스턴스 만들기 때문에 데이터 멤버를 초기화 하는 올바른 방법은 클래스의 생성자를 사용 하는입니다.(생성자에 포함 됩니다 생성자에서입니다.)

정적 데이터 멤버를 지정 된 클래스 유형의 모든 개체에 대 한 공유 복사본이 하나만 있습니다.정적 데이터 멤버는 정의 되어야 하며 파일 범위에 초기화 될 수 있습니다.(정적 데이터 멤버에 대 한 자세한 내용은 정적 데이터 멤버입니다.) 다음 예제에서는 이러한 초기화를 수행 하는 방법을 보여 줍니다.

// class_members2.cpp
class CanInit
{
public:
    CanInit() { l = 7; } // Initializes l when new objects of type 
                         //  CanInit are created.
    long       l;
    static int i;
    static int j;
};

// i is defined at file scope and initialized to 15.
// The initializer is evaluated in the scope of CanInit.
int CanInit::i = 15;                                                       

// The right side of the initializer is in the scope 
// of the object being initialized
int CanInit::j = i;  

int main()
{
}

[!참고]

클래스 이름 CanInit, 앞에 야 합니다 i 되도록 지정 하려면는 i 정의 하는 클래스의 멤버는 CanInit.

Microsoft 전용

Microsoft C++ 정적, const를 정수 계열 및 const 열거형 데이터 멤버를 클래스 정의에서 초기화 될 수 있습니다.참조 하십시오 C와 C++ Microsoft 확장.

참고 항목

참조

클래스, 구조체 및 공용 구조체