구조체 (C++)

struct 키워드 구조 형식 및/또는 구조체 형식의 변수를 정의 합니다.

[template-spec] struct[ms-decl-spec] [tag [: base-list ]]
{ 
   member-list 
} [declarators];
[struct] tag declarators;

매개 변수

  • template-spec
    서식 파일 선택 사양입니다.자세한 내용은 서식 파일 사양를 참조하십시오.

  • struct
    struct 키워드입니다.

  • ms-decl-spec
    선택적 저장소 클래스 사양입니다.자세한 내용은 참조 하십시오 있는 __declspec 키워드.

  • tag
    구조에 지정 된 형식 이름입니다.태그 구조체의 범위 내에서 예약어가 됩니다.태그는 선택적입니다.지정 하지 않으면 익명 구조체에 정의 됩니다.자세한 내용은 익명 클래스 형식은.

  • base-list
    선택 사항 목록 클래스 또는 구조체의 해당 멤버에서이 구조를 도출 합니다.자세한 내용은 기본 클래스를 참조하십시오.각 기본 클래스 또는 구조체 이름으로 액세스 지정자 앞에 (public, 개인, 보호) 및 가상 키워드.멤버 액세스 테이블을 참조 하십시오. 클래스 멤버에 대 한 액세스를 제어 에 대 한 자세한 내용은.

  • member-list
    구조체 멤버의 목록입니다.자세한 내용은 클래스 멤버을 참조하십시오.여기는 유일한 차이점은 struct 대신 사용 됩니다 class.

  • declarators
    선언 자 목록 클래스의 이름을 지정 합니다.선언 자 목록 구조 형식의 여러 인스턴스를 선언합니다.선언 자 모든 데이터 멤버가 클래스의 이니셜라이저 목록 포함 될 수 있습니다 public.데이터 구성원이 기 때문에 이니셜라이저 목록의 공용 구조체에는 public 기본으로 합니다.자세한 내용은 선언 자 개요를 참조하십시오.

설명

구조 형식에는 사용자 정의 복합 형식이입니다.필드 또는 다른 형식을 가질 수 있는 구성원을 이루어집니다.

멤버 수를 제외 하 고 C++의 구조체와 클래스 동일 public 기본으로 합니다.

관리 되는 클래스 및 구조체에 대 한 자세한 내용은 클래스 및 구조체.

구조체를 사용 하 여

C에서 명시적으로 사용 해야 합니다을 struct 구조체를 선언 하는 키워드입니다.형식을 정의 하 고 C++에서는이 필요 하지 않습니다.

하나 이상의 쉼표로 구분 된 변수 이름을 닫는 괄호와 세미콜론 배치 하 여 구조체 형식이 정의할 때 변수 선언 있습니다.

구조체 변수를 초기화할 수 있습니다.각 변수에 대 한 초기화는 중괄호로 묶어야 합니다.

관련된 정보를 참조 하십시오. 클래스, union, 및 열거형.

예제

// struct1.cpp
struct PERSON {   // Declare PERSON struct type
   int age;   // Declare member types
   long ss;
   float weight;
   char name[25];
} family_member;   // Define object of type PERSON

int main() {
   struct PERSON sister;   // C style structure declaration
   PERSON brother;   // C++ style structure declaration
   sister.age = 13;   // assign values to members
   brother.age = 7;
}

struct POINT {   // Declare POINT structure
   int x;   // Define members x and y
   int y;
} spot = { 20, 40 };    // Variable spot has
                        // values x = 20, y = 40

struct POINT there;     // Variable there has POINT type

struct CELL {   // Declare CELL bit field
   unsigned short character  : 8;  // 00000000 ????????
   unsigned short foreground : 3;  // 00000??? 00000000
   unsigned short intensity  : 1;  // 0000?000 00000000
   unsigned short background : 3;  // 0???0000 00000000
   unsigned short blink      : 1;  // ?0000000 00000000
} screen[25][80];       // Array of bit fields 

참고 항목

참조

클래스 형식 정의