[C con Clase] Funciones

Davidson, Steven srd4121 en njit.edu
Lun Ene 21 03:35:14 CET 2013


Hola B.Amauri,

2013/1/20 amauri d <b_duhart en live.com.mx>

> ¡Hola! Yo de nuevo, esta vez preguntando acerca de funciones y uniones, es
> decir, constructores.
> En el capítulo 16, en el problema 16.3, introducen un constructor como el
> siguiente:
>
> union ejemplo {
>     int x;
>     double d;
>     char cad[8];
>     ejemplo(int i) : x(i) {}
>     ejemplo(double n) : d(n) {}
>     ejemplo(const char *c) {
>         strncpy(cad, c, 7);
>         cad[7] = 0;
>     }
> };
>
> Pero, si bien he prestado atención, aún no explicaban qué es esto.
> Entiendo que "func (tipo identificador) : variable(identificador) {}"
> asigna el parámetro de la función a la variable, pero ¿por qué?
>
>
Bueno, hemos explicado un poco acerca de constructores en el capítulo 11 (
http://c.conclase.net/curso/index.php?cap=011#STR_funciones ), pero
ciertamente no hemos visto la lista inicializadora: lo que existe entre los
dos puntos y la apertura de llave. Si lo prefieres, podemos reescribir lo
anterior así:

ejemplo( int i )
{
  x = i;
}

ejemplo( double n )
{
  d = n;
}


La idea tras el constructor es que sirva para preparar cualquier variable
(u objeto) para su uso. En genereal, esto implica que la variable debe
comenzar en un estado "correcto". Típicamente, lo que uno hace es guardar
valores iniciales en los campos o miembros de tal estructura.

Veremos más acerca del tema de constructores cuando lleguemos a la POO, a
partir del capítulo 27.


Espero haber aclarado la duda.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130120/ad630957/attachment.html>


Más información sobre la lista de distribución Cconclase