Herramientas de usuario

Herramientas del sitio


curso-cpp:struct

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
curso-cpp:struct [2017/03/21 20:47]
santo
curso-cpp:struct [2017/10/29 19:20] (actual)
santo
Línea 21: Línea 21:
 ¿Qué pasa si queremos guardar tanto nombre como apellido? Podemos tener **dos vectors** diferentes: ¿Qué pasa si queremos guardar tanto nombre como apellido? Podemos tener **dos vectors** diferentes:
  
-<​code>​+<​code ​cpp>
 vector<​string>​ nombres; vector<​string>​ nombres;
 vector<​string>​ apellidos; vector<​string>​ apellidos;
Línea 32: Línea 32:
 ¿Y si tuviéramos que agregar los demás datos? Tendríamos que tener muchos vectors: ¿Y si tuviéramos que agregar los demás datos? Tendríamos que tener muchos vectors:
  
-<​code>​+<​code ​cpp>
 vector<​string>​ nombres; vector<​string>​ nombres;
 vector<​string>​ apellidos; vector<​string>​ apellidos;
Línea 52: Línea 52:
 Por ejemplo, una esquina en una ciudad viene dada generalmente indicando las dos calles que allí se cruzan. Podríamos tener así un tipo para las esquinas, que podríamos escribir así: Por ejemplo, una esquina en una ciudad viene dada generalmente indicando las dos calles que allí se cruzan. Podríamos tener así un tipo para las esquinas, que podríamos escribir así:
  
-<​code>​+<​code ​cpp>
 struct Esquina struct Esquina
 { {
Línea 62: Línea 62:
 o también de forma completamente equivalente:​ o también de forma completamente equivalente:​
  
-<​code>​+<​code ​cpp>
 struct Esquina struct Esquina
 { {
Línea 75: Línea 75:
 ¿Cómo utilizamos este tipo? Podemos declarar variables de tipo Esquina exactamente igual que declaramos las de otros tipos como int o string: ¿Cómo utilizamos este tipo? Podemos declarar variables de tipo Esquina exactamente igual que declaramos las de otros tipos como int o string:
  
-<​code>​+<​code ​cpp>
 Esquina e; Esquina e;
 Esquina e2; Esquina e2;
Línea 87: Línea 87:
 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: 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>​+<​code ​cpp>
 Esquina e; Esquina e;
 Esquina e2; Esquina e2;
Línea 96: Línea 96:
 O directamente en la declaracion:​ O directamente en la declaracion:​
  
-<​code>​+<​code ​cpp>
 Esquina e = {"​Cordoba","​Medrano"​};​ Esquina e = {"​Cordoba","​Medrano"​};​
 Esquina e2; Esquina e2;
Línea 104: Línea 104:
 Así, para representar la escuela anterior, podríamos tener un struct con la información del alumno: Así, para representar la escuela anterior, podríamos tener un struct con la información del alumno:
  
-<​code>​+<​code ​cpp>
 struct Alumno struct Alumno
 { {
Línea 121: Línea 121:
 Y tener **un solo vector**, que guardará directamente Alumnos: Y tener **un solo vector**, que guardará directamente Alumnos:
  
-<​code>​+<​code ​cpp>
 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 cpp>
 +string nombreCompleto(Alumno a)
 +{
 +    return a.nombre + " " + a.apellido;
 +}
 </​code>​ </​code>​
curso-cpp/struct.1490129237.txt.gz · Última modificación: 2017/03/21 20:47 por santo