struct (C++)
The struct keyword defines a structure type and/or a variable of a structure type.
[template-spec] struct [ms-decl-spec] [tag]
{
member-list
} [declarators];
[struct] tag declarators;
Remarks
A structure type is a user-defined composite type. It is composed of fields or members that can have different types.
In C++, a structure is the same as a class except that its members are public by default.
To define a structure type, see the information on defining classes in the topic for class. The only difference is that struct is used in place of class.
For information on managed classes and structs, see Classes and Structs.
Using a Structure
In C, you must explicitly use the struct keyword to declare a structure. In C++, this is unnecessary once the type has been defined.
You have the option of declaring variables when the structure type is defined by placing one or more comma-separated variable names between the closing brace and the semicolon.
Structure variables can be initialized. The initialization for each variable must be enclosed in braces.
For related information, see class, union, and enum.
Example
// 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;
}
// struct2.cpp
// compile with: /c
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