Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa Última revisión Ambos lados, revisión siguiente | ||
curso-cpp:struct [2017/03/21 20:36] santo creado |
curso-cpp:struct [2017/03/21 21:01] santo |
||
---|---|---|---|
Línea 85: | Línea 85: | ||
El ejemplo muestra que podemos utilizar ''.'' para acceder a los componentes individuales de un struct. Cada uno de estos componentes funciona como una variable independiente, del tipo correspondiente, y el struct lo que hace es funcionar como una sola "gran variable" que las une a todas. También en el ejemplo vemos que es válido utilizar el operador de asignación para copiar structs, igual que copiábamos variables de tipos básicos como ''int''. Esto lo que hará es copiar cada componente. | El ejemplo muestra que podemos utilizar ''.'' para acceder a los componentes individuales de un struct. Cada uno de estos componentes funciona como una variable independiente, del tipo correspondiente, y el struct lo que hace es funcionar como una sola "gran variable" que las une a todas. También en el ejemplo vemos que es válido utilizar el operador de asignación para copiar structs, igual que copiábamos variables de tipos básicos como ''int''. Esto lo que hará es copiar cada componente. | ||
- | Así, para representar la escuela anterior, podíramos tener un struct con la información del alumno: | + | De manera similar a lo que ocurre con los vectors, es posible((En [[cpp-avanzado:c++11|C++11]])) indicar un valor para todo el struct en lugar trabajar con componentes de a una, mediante el uso de llaves para dar los valores en el orden del struct. El ejemplo anterior por lo tanto se podría reescribir como: |
+ | |||
+ | <code> | ||
+ | Esquina e; | ||
+ | Esquina e2; | ||
+ | e = {"Cordoba","Medrano"}; | ||
+ | e2 = e; // Ahora la variable e2 contiene la misma esquina que la variable e | ||
+ | </code> | ||
+ | |||
+ | O directamente en la declaracion: | ||
+ | |||
+ | <code> | ||
+ | Esquina e = {"Cordoba","Medrano"}; | ||
+ | Esquina e2; | ||
+ | e2 = e; // Ahora la variable e2 contiene la misma esquina que la variable e | ||
+ | </code> | ||
+ | |||
+ | Así, para representar la escuela anterior, podríamos tener un struct con la información del alumno: | ||
<code> | <code> | ||
Línea 106: | Línea 123: | ||
<code> | <code> | ||
vector<Alumno> alumnos; | vector<Alumno> alumnos; | ||
+ | </code> | ||
+ | |||
+ | Como un struct define un nuevo tipo que puede usarse igual que los ya existentes, las funciones pueden recibir parámetros de tipo struct: | ||
+ | |||
+ | <code> | ||
+ | string nombreCompleto(Alumno a) | ||
+ | { | ||
+ | return a.nombre + " " + a.apellido; | ||
+ | } | ||
</code> | </code> |