클래스 멤버
클래스는 이러한 종류의 멤버를 가질 수 있습니다.
클래스, 클래스, 구조체 및 공용 구조체를 포함 합니다.(참조 하십시오 중첩 클래스 선언을 및 공용 구조체입니다.)
열거형.
친구.
-
[!참고]
클래스 선언에 포함 되어 있기 때문에 친구 들 앞의 목록에 포함 됩니다.그러나 클래스 범위에 수 없기 때문에가 true 이면 클래스 멤버 아닙니다.
설명
클래스 멤버 목록을 나눌 수 있습니다 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 확장.