Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Punteros a void en funciones<br />
El uso más importante <strong>de</strong> punteros void en <strong>C++</strong> es pasar la dirección <strong>de</strong> tipos <strong>de</strong> datos diferentes en<br />
una llamada a función cuando no se conoce por anticipado que tipo <strong>de</strong> dato se pasa.<br />
#inclu<strong>de</strong> <br />
enum dato{caracter,real,entero,ca<strong>de</strong>na};<br />
void ver(void *,dato);<br />
void main()<br />
{<br />
char a='b';<br />
int x=3;<br />
double y=4.5;<br />
char *cad="hola";<br />
ver(&a,caracter);<br />
ver(&x,entero);<br />
ver(&y,real);<br />
ver(cad,ca<strong>de</strong>na);<br />
}<br />
void ver( void *p, dato d)<br />
{<br />
switch(d)<br />
{<br />
case caracter: printf("%c\n",*(char *)p);<br />
break;<br />
case entero: printf("%d\n",*(int *)p);<br />
break;<br />
case real: printf("%ld\n",*(double *)p);<br />
break;<br />
case ca<strong>de</strong>na: printf("%s\n",(char *)p);<br />
}<br />
}<br />
En este ejemplo no se conoce por anticipado cuál es el tipo <strong>de</strong>l valor que se pasará como argumento a<br />
la función ver.<br />
Compilación separada<br />
Un programa <strong>C++</strong> consta <strong>de</strong> uno o más archivos fuente que se compilan y enlazan juntos para formar<br />
un programa ejecutable.<br />
La mayoría <strong>de</strong> las bibliotecas contienen un número significativo <strong>de</strong> funciones y variables. Para ahorrar<br />
trabajo y asegurar la consistencia cuando se hacen <strong>de</strong>claraciones externas <strong>de</strong> estos elementos, <strong>C++</strong><br />
utiliza un dispositivo <strong>de</strong>nominado archivo <strong>de</strong> cabecera. Un archivo <strong>de</strong> cabecera es un archivo que<br />
contiene las <strong>de</strong>claraciones externas <strong>de</strong> una biblioteca. Estos archivos tienen extensión .h.<br />
Ejemplo:<br />
archivo max.h<br />
int max(int,int); //prototipo <strong>de</strong> la función<br />
archivo maximo.cpp<br />
int max(int x, int y) //<strong>de</strong>finición <strong>de</strong> la función<br />
{<br />
if (x>y) return(x);<br />
return(y);<br />
}