struct (C++)
La palabra clave struct define un tipo de estructura o una variable de un tipo de estructura.
[template-spec] struct[ms-decl-spec] [tag [: base-list ]]
{
member-list
} [declarators];
[struct] tag declarators;
Parámetros
template-spec
Especificaciones de plantilla opcionales. Para obtener más información, vea Especificaciones de plantilla.struct
Palabra clave struct.ms-decl-spec
Especificación opcional de clase de almacenamiento. Para obtener más información, vea la palabra clave __declspec.tag
Nombre del tipo dado a la estructura. La etiqueta se convierte en una palabra reservada dentro del ámbito de la estructura. La etiqueta es opcional. Si se omite, se define una estructura anónima. Para obtener más información, vea Tipos de clase anónimos.base-list
La lista opcional de clases o de estructuras de la que esta estructura derivará sus miembros. Para obtener más información, vea Clases base. Cada nombre de clase base o de estructura puede ir precedido de un especificador de acceso (public, private, protected) y la palabra clave virtual. Vea la tabla de acceso a miembros en Controlar el acceso a miembros de clase para obtener más información.member-list
Lista de miembros de la estructura. Vea Miembros de clase para obtener más información. La única diferencia aquí es que se utiliza struct en lugar de class.declarators
Lista de declaradores que especifican los nombres de la clase. Las listas de declaradores declaran una o más instancias del tipo de estructura. Los declaradores pueden incluir listas de inicializadores si todos los miembros de datos de la clase son public. Las listas de inicializadores son comunes en estructuras porque los miembros de datos son public de forma predeterminada. Para obtener más información, vea Información general sobre los declaradores.
Comentarios
Un tipo de estructura es un tipo compuesto definido por el usuario. Se compone de campos o de miembros que pueden tener diferentes tipos.
En C++, una estructura es igual que una clase salvo que sus miembros son public de forma predeterminada.
Para obtener información sobre las clases administradas y los structs, vea Clases y structs.
Uso de una estructura
En C, debe utilizar explícitamente la palabra clave struct para declarar una estructura. En C++, no es necesario usar la palabra clave struct una vez definido el tipo.
Tiene la opción de declarar variables al definir el tipo de estructura, para lo cual debe insertar uno o más nombres de variable separados por comas entre la llave de cierre y el punto y coma.
Las variables de estructura se pueden inicializar. La inicialización de cada variable se debe incluir entre llaves.
Para obtener información relacionada, vea clase, unión y enumeración.
Ejemplo
#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