문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문
Visual Studio 2017을 사용하는 것이 좋습니다.

정교한 형식 지정자

상세 형식 지정자는 class, struct, enum 또는 union 키워드 중 하나의 뒤에 오는 형식 이름입니다.

class identifier 
struct identifier 
enum identifier 
union identifier

동일한 범위에서 이름이 같은 변수의 선언으로 숨겨진 형식 이름을 표시하거나 강조를 위해 상세 형식 지정자를 사용합니다.

다음 문은 Window 식별자를 클래스 이름으로 선언합니다. 이 구문은 클래스의 정방향 선언에 사용됩니다. 클래스 이름에 대한 자세한 내용은 클래스 이름을 참조하십시오.

class Window;

이름이 union 키워드를 사용하여 선언된 경우 union 키워드를 사용하여 정의되기도 해야 합니다. class 키워드를 사용하여 정의된 이름은 struct 키워드를 사용하여 선언될 수 있으며 그 반대의 경우도 마찬가지입니다. 따라서 다음 코드 샘플은 올바릅니다.

// elaborated_type_specifiers1.cpp
struct A;   // Forward declaration of A.

class A   // Define A.
{
public:
   int i;
};

int main()
{
}
// elaborated_type_specifiers2.cpp
class A;   // Forward declaration of A

struct A
{
private:
    int i;
};

int main()
{
}
// elaborated_type_specifiers3.cpp
union A;   // Forward declaration of A

union A
{
   int  i;
   char ch[2];
};

int main()
{
}

그러나 다음 예제는 잘못되었습니다.

// elaborated_type_specifiers4.cpp
union A;   // Forward declaration of A.

struct A
{   // C2011
   int i;
};
// elaborated_type_specifiers5.cpp
union A;   // Forward declaration of A.

class A
{   // C2011
public:
   int i;
};
// elaborated_type_specifiers6.cpp
struct A;   // Forward declaration of A.

union A
{   // C2011
   int  i;
   char ch[2];
};
표시: