ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Esctructura Condicional


Enviado por   •  18 de Noviembre de 2014  •  1.974 Palabras (8 Páginas)  •  129 Visitas

Página 1 de 8

Estructuras compuestas (struct, union, class)

Con base en los tipos básicos mostrados arriba, se pueden crear nuevos tipos con estructuras compuestas por uno o más de uno de los tipos mencionados. En C, C++ en orden de crear nuevas estructuras se emplean la palabras reservadas struct, union y class.

• struct: esta orden se emplea para agrupar variables de tipos iguales o diferentes en un solo registro, con la misma se pueden crear estructuras anónimas, estructuras con nombre, y un tipo especial de estructura conocida como bit-fields ( banderas o campos de bits ).

• union: una union es similar a una struct, salvo que en una estructura creada con union los campos o variables comparten una dirección de almacenamiento común.

• class: una clase es una estructura en donde se agrupan variables y funciones, la misma es usada en Programación Orientada al Objeto. Las clases no son soportadas por el C estándar.

Nota: tanto las estructuras como las uniones y las clases pueden ser anónimas, pero lo más

recomendable es darle a las mismas un nombre. Si una estructura, union o clase posee

nombre, esta pueden ser empleadas para declarar variables de la misma y, lo más importante,

puede ser usada para el paso de parámetros a funciones.

________________________________________

Sintaxis general: struct

struct [ <nombre tipo de estructura > ] {

[ <tipo> <nombre-variable[, nombre-variable, ...]> ] ;

[ <tipo> <nombre-variable[, nombre-variable, ...]> ] ;

...

} [ <variables de estructura> ] ;

Nota: recuerde que lo que se muestra entre corchetes es opcional.

struct: Sintaxis ( variación uno, estructura anónima )

De acuerdo con la sintaxis general de la orden struct es posible crear estructuras de datos anónimas. Solamente hay que tener en cuenta que en una declaración anónima se debe definir al menos una variable al final de la declaración. Por ejemplo, con el siguiente fragmento de código:

struct { int a, b; } p1;

se declara y define la variable estructurada p1, misma que se compone por los miembros a y b; ambos del tipo int. Ahora bien, la sintaxis mostrada arriba no es tan común ni conveniente, ya que con la misma solamente se esta creando una variable estructurada pero no un nuevo tipo. Es decir, si desearamos tener otra variable que tuviera las mismas caracteristicas que posee la variable p1, necesitariamos escribir exactamente la misma instrucción, salvo que cambiando el nombre de la variable. Por ejemplo:

struct { int a, b; } p2;

Por supuesto, en una misma línea de instrucción podemos definir más de una variable. Ejemplo:

struct { int a, b; } p1, p2;

Entonces, para crear nuevos tipos con struct deberemos de modificar la sintaxis mostrada en los ejemplos anteriores.

Sintaxis: struct ( variación dos, estructura con nombre )

Observe que, la sintaxis para declarar estructuras con nombre es bastante parecida a la sintaxis para declarar estructuras anónimas; salvo que una declaración de estructura con nombre se debe especificar el nombre deseado para la misma. Además, en una declaración de estructura con nombre la o las variables definidas al final de la misma son opcionales.

Ejemplos:

struct pareja { int a, b; } p1;

En el fragmento de código anterior se declara la estructura identificada como pareja, misma que se compone de los miembros a y b, ambos de tipo int. En el mismo ejemplo, se define la variable p1; la cual es una variable estructurada de tipo pareja.

Una vez que una estructura con nombre ha sido creada, la misma puede ser usada para declarar cualquier número de variables. Por ejemplo, en el siguiente fragmento de código se crea la estructura tiempo compuesta por los miembros hora, minuto y segundo; todos del tipo int. En el mismo ejemplo, se declaran las variables t1 y t2.

/* declaración de estructura tiempo */

struct tiempo { int hora, minuto, segundo; };

/* declaración de variables de tipo tiempo */

struct tiempo t1, t2;

Nota: en C++ puede olviarse la palabra struct a la hora de declarar variables. Así, en C++ la línea de instrución struct tiempo t1, t2; ( del ejemplo anterior) puede escibirse como: tiempo t1, t2;

struct vs. class

Esta sección no pretende enseñar que el uso de la palabra struct es lo mismo que usar la palabra class. Sin embargo, como ya se mencionó en una sección anterior a esta, las estructuras (struct) pueden extenderse de otras y heredar todos los miembros de la estructura base. Otro punto que se demostrará aqui es el hecho de que las estructuras en C++ (no en C estándar) pueden contener miembros funciones. Por supuesto, el compilador trata a una struct de una forma diferente que a una class. Entre algunas de las diferencias que se pueden mencionar respecto a las estructuras contra las clases son:

• Los miembros de una struct son públicos por default, mientras que los miembros de una class son privados por default.

• Los parámetros-argumentos struct se pasan normalmente por copia, los parámetros-argumentos class se pasan normalmente por referencia.

// Este programa ha sido probado en Dev-C++ y Borland C++

#include <iostream>

using namespace std;

// estructura tipo clase base

struct Par {

int a, b;

// constructor base

Par() { a = b = 0; }

...

Descargar como (para miembros actualizados)  txt (11.1 Kb)  
Leer 7 páginas más »
Disponible sólo en Clubensayos.com