Class에 관해 질문있습니다. (_ _)

jhBaessi의 이미지

MFC프로그래밍 중 어쩌다 생각나서 써봤는데 되더라구요.
클래스에 tag를 붙였다고 해야하나.. 아래 코드와 같은 형식으로 작성했는데 정확히 해석이 안되서 여쭈어 봅니다.

class A : public CDialog
{

...

}aa;

이런 형식으로 만들었으면 A 클래스를 선언하고 aa라는 객체를 바로 생성하는 개념인가요?

taesaza0의 이미지

네 맞습니다 A라는 클래스도 생성 되어 있고 aa라는 객체도 생성 된 것입니다.

class A : public CDialog
{

...

};

A aa;

와 같은 코드 입니다

swr0920의 이미지

class A : public CDialog
{

...

}aa;

이꼴

A aa;

윗분이 설명 잘 해 주셨네염..

klara의 이미지

주로 익명 구조체/클래스(anonymous struct/class)를 사용하기 위해서 쓰는 구문입니다. 구조체의 선언과 변수 선언을 동시에 하기 위해서 쓰는데, 구조체에 이름을 아예 달지 않고 바로 변수 선언을 해버릴때 쓸 수 있습니다. 예를 들어

struct A {
  struct { int x, y; } xy;
  char str[256];
};

와 같은 방식으로 다른 코드에서 재활용할 필요가 없는 구조체 변수를 선언하거나 혹은 하나의 구조체(또는 union) 안에서만 쓸 수 있도록 nested 구조체를 만드는 경우 등에 많이 쓰입니다.