Del tema Estructuras falta definir lo siguiente:
Typedef
La palabra reservada typedef proporciona un mecanismo para la creación
de sinónimos (o alias) para tipos de datos anteriormente definidos. Por ejemplo:
typedef struct ejemplo Ejemplo;
define Ejemplo como un sinónimo de ejemplo.
Una forma alternativa de definir una estructura es:
typedef struct {
char c;
int i;}
Ejemplo;
Podemos ahora utilizar Ejemplo para declarar variables del tipo struct, por
ejemplo
Ejemplo a[10];
typedef se utiliza a menudo para crear seudónimos para los tipos de datos
básicos. Si tenemos por ejemplo un programa que requiere enteros de 4 bytes
podría usar el tipo int en un programa y el tipo long en otro. Para garantizar
portabilidad podemos utilizar typedef para crear un alias de los enteros de 4
bytes en ambos sistemas.
Ejemplo de estructura de la cual se guiaran para realizar sus 2 prácticas de estructura
#include <iostream>
using namespace std;
int main()
{
struct
{
string nombre;
char inicial;
int edad;
float nota;
} persona;
persona.nombre = "Ana";
persona.inicial = 'A';
persona.edad = 22;
persona.nota = 10;
cout << "La edad es " << persona.edad;
return 0;
}
La utilidad de los punteros a función
La utilidad de los punteros a funciones se manifiesta sobre todo cuando se personalizan ciertas funciones de biblioteca. Podemos por ejemplo, diseñar una función de biblioteca que admita como parámetro una función, que debe crear el usuario (en este caso otro programador), para que la función de biblioteca complete su funcionamiento.
void qsort(void *base, size_t nmemb, size_t tamanyo, int (*comparar)(const void *, const void *));
Vemos que el cuarto parámetro es un puntero a una función comparar que devuelve un int y admite dos parámetros de tipo puntero genérico.
Esto permite a la biblioteca cstdib definir una función para ordenar arrays independientemente de su tipo, ya que para comparar elementos del array se usa una función definida por el usuario, y qsort puede invocarla después.
Ejemplo de puntero a función
#include <iostream>
void printMensaje (float dato);
void printNumero (float dato);
void (*funcPuntero)(float);
main()
{
float pi = 3.14159;
printMensaje(pi);
funcPuntero = printMensaje;
funcPuntero (pi);
funcPuntero = printNumero;
funcPuntero (pi);
printNumero(pi);
}
void printMensaje(float dato)
{
cout <<" Esta es la funcion printMensaje " <<'\n';
}
void printNumero(float dato)
{
cout <<" Este es el dato: " << dato << '\n';
}
Desarrolle una practica de punteros a función
No hay comentarios:
Publicar un comentario