struct (C++)
La palabra clave struct
define un tipo de estructura o una variable de un tipo de estructura.
Sintaxis
[template-spec] struct [ms-decl-spec] [tag [: base-list ]]
{
member-list
} [declarators];
[struct] tag declarators;
Parámetros
template-spec
Especificaciones de plantilla opcionales. Para más información, consulte Especificaciones de plantilla.
struct
La palabra clave struct
.
ms-decl-spec
Especificación opcional de clase de almacenamiento. Para más información, consulte 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 más información, consulte Tipos de clase anónimos.
base-list
La lista opcional de clases o de estructuras de la que esta estructura derivará sus miembros. Consulte Clases base para más información. Cada nombre de clase base o de estructura puede ir precedido de un especificador de acceso (public, private, protected) y la palabra clave virtual. Consulte la tabla de acceso a miembros en Controlar el acceso a los miembros de clase para más información.
member-list
Lista de miembros de la estructura. Consulte Información general sobre miembros de clase para 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 estructura. 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 estructura son public
. Las listas de inicializadores son comunes en estructuras porque los miembros de datos son public
de forma predeterminada. Consulte Información general sobre declaradores para más información.
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 y estructuras administradas en C++/CLI, consulte Clases y estructuras.
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, consulte 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