선언 및 클래스 이름 액세스

클래스 이름을 선언할 수 있습니다에서 전역 또는 클래스 범위.변수가 클래스 범위에 선언 된 경우 이러한 클래스를 "중첩된"으로 라고 합니다.

Microsoft 전용

Microsoft C++에서 지역 클래스 선언에서 함수 정의 허용 되지 않습니다.

Microsoft 특정 끝

클래스 범위에서 정의 된 클래스 이름을 포함 하는 범위에서 이름이 같은 다른 요소를 숨깁니다.이름이 선언으로 숨겨져 있습니다 다음 참조할 수만 사용 하 여는 구체적 형식 지정자.다음 예제를 사용 하는 예는 구체적 형식 지정자 숨겨진된 이름으로 참조 하려면:

// class_names2.cpp
struct A   // Global scope definition of A.
{
    int a;
};

int main()
{
    char A = 'a';   // Redefine the name A as an object.
    struct A AObject;
}

때문에 이름 A 참조 하 구조 숨겨진의 A 참조 하는 char 개체를 struct (에 클래스 키) 선언 하는 데 AObject 형식으로 A.

사용할 수 있는 클래스 키 정의 제공 하지 않고는 클래스를 선언 합니다.이 nondefining 선언 하는 클래스의 클래스 이름에 대 한 정방향 참조를 소개합니다.서로를 참조 하는 클래스를 설계할 때이 기술은 유용 friend 선언 합니다.도 클래스 이름과 헤더 파일에 포함 되어 있어야 하지만 정의가 필요 하지 않은 경우 유용 합니다.예를 들면 다음과 같습니다.

// RECT.H
class Point;   // Nondefining declaration of class Point.
class Line
{
public:
    int Draw( Point &ptFrom, Point &ptTo );
    ...
};

위의 예제는 이름에 Point 을 반드시 지정 해야 하지만 필요한 이름을 소개 하는 정의 선언이 아닐.

참고 항목

참조

클래스 이름