Foto tomada de freedigitalphotos.net |
Definición de una
función.
Las funciones en C++
siguen la misma estructura que en C:
tipo_retorno
identificador (parámetros)
{
instrucciones;
return (valor);
}
El tema de la declaración
y uso de variables locales y globales no varía, seguimos pudiendo acceder a las
globales y declarar locales que no se verán en ningún otro sitio.
Llamada a una función.
La estructura es la
siguiente:
variable_destino = identificador
(parámetros);
Para el paso de
parámetros por valor y por referencia es el mismo:
Paso por valor:
tipo_retorno
identificador (parámetros)
{
instrucciones;
return (valor);
}
Paso por referencia:
tipo_retorno
identificador (&parámetros)
{
instrucciones;
return (valor);
}
Las funciones recursivas
siguen la misma estructura también. A continuación os dejo el código de la
función recursiva que calcula el factorial de un número:
#include
<iostream.h>
int
a,b,factorial;
int main (void)
{
cout << "Este programa calculara
el factorial del numero entero que ingrese \nPor favor ingrese su numero "
<<endl;
cin >> a;
factorial=1;
for (b=1 ; b<=a ; b++)
{
factorial=b*factorial;
}
cout << "El factorial es "
<<factorial<<endl;
system("pause");
return 0;
}
Punteros.
La definición, estructura
y uso de los punteros no varía en absoluto.
Supongamos el puntero
siguiente:
int num1, num2, *p;
p es un puntero a int.
&p contiene la
dirección de memoria a la que apunta el puntero p.
*p contiene el valor
almacenado en la dirección de memoria a la que apunta.
Os dejo con un ejemplo de su uso:
#include <iostream>
using namespace std;
int main() {
char cadena[10] = "Hola Mundo";
char *c;
int *n;
void *v;
c = cadena; // c apunta a cadena
n = (int *)cadena; // n también apunta a cadena
v = (void *)cadena; // v también
cout << "char: " << *c << endl;
cout << "int: " << *n << endl;
cout << "float: " << *(float *)v << endl;
return 0;
}
¿Qué te ha parecido la
serie de post sobre diferencias y equivalencias entre C y C++?