struct (C++)

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

구문

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

매개 변수

template-spec
선택적 템플릿 지정입니다. 자세한 내용은 템플릿 사양을 참조하세요.

struct
struct 키워드.

ms-decl-spec
선택적 스토리지 클래스 지정입니다. 자세한 내용은 __declspec 키워드(keyword) 참조하세요.

tag
구조체에 지정된 형식 이름입니다. 태그는 구조체의 범위 내에서 예약어가 됩니다. 태그는 선택 사항입니다. 생략할 경우 익명 구조체가 정의됩니다. 자세한 내용은 익명 클래스 형식을 참조 하세요.

base-list
이 구조체가 해당 멤버를 파생할 클래스 또는 구조체의 선택적 목록입니다. 자세한 내용은 기본 클래스를 참조하세요. 각 기본 클래스 또는 구조체 이름 앞에 액세스 지정자(퍼블릭, 프라이빗, 보호됨) 및 가상 키워드(keyword) 지정할 수 있습니다. 자세한 내용은 클래스 멤버에 대한 액세스 제어의 멤버 액세스 테이블을 참조하세요.

member-list
구조체 멤버 목록입니다. 자세한 내용은 클래스 멤버 개요를 참조하세요. 여기서 유일한 차이점은 대신 사용되는 class것입니다struct.

declarators
구조체의 이름을 지정하는 선언자 목록입니다. 선언자 목록은 구조체 형식의 하나 이상의 인스턴스를 선언합니다. 구조체의 모든 데이터 멤버가 이니셜라이저 목록인 경우 선언자에 이니셜라이저 목록이 포함될 수 있습니다 public. 데이터 멤버는 기본적으로 이니셜라이저 목록이기 때문에 구조체에서 일반적입니다 public . 자세한 내용은 선언자 개요를 참조하세요.

설명

구조체 형식은 사용자 정의 복합 형식입니다. 이 형식은 다른 형식을 가질 수 있는 필드 또는 멤버로 구성됩니다.

C++에서 구조체는 멤버가 기본적으로 있다는 점을 제외하고 클래스와 동일합니다 public .

C++/CLI의 관리되는 클래스 및 구조체에 대한 자세한 내용은 클래스 및 구조체를 참조 하세요.

구조체 사용

C에서는 키워드(keyword) 사용하여 struct 구조를 선언해야 합니다. C++에서는 형식이 struct 정의된 후 키워드(keyword) 사용할 필요가 없습니다.

닫는 중괄호와 세미콜론 사이에 쉼표로 구분된 변수 이름을 하나 이상 넣어 구조체 형식이 정의될 때 변수를 선언하는 옵션이 있습니다.

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

관련 정보는 클래스, 공용 구조열거형을 참조하세요.

예제

#include <iostream>
using namespace std;

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

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

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;
    cout << "sister.age = " << sister.age << '\n';
    cout << "brother.age = " << brother.age << '\n';

    CELL my_cell;
    my_cell.character = 1;
    cout << "my_cell.character = " << my_cell.character;
}
// Output:
// sister.age = 13
// brother.age = 7
// my_cell.character = 1