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