[C con Clase] Duda de novato - herencia con estructuras.

Davidson, Steven srd4121 en njit.edu
Mar Dic 24 17:17:35 CET 2013


Hola Miguel Ángel,

2013/12/24 Miguel Ángel Torres Fernández-Píñar <
miguelangeltorresfp en gmail.com>

> Buenos días a todos !!!
>
> Y ante todo, muchísimas gracias Steven !!!
>
> Estoy releyendo los ejemplos que mostrastes para ilustrarme las diferentes
> posibilidades :
>
> Tengo una duda con este método :
>
> Area2D CrearArea2D( int width, int height = -1 )
> {
>   static int _height = 0;
>
>   if( height >= 0 )  _height = height;
>
>   return Area2D( width, _height );
> }
>
> 1 ) ¿ Se puede declarar una variable estática dentro de un método ???
> Qué pasa entonces cada vez que se llama a este método, ¿ no se vuelve a
> redefinir la variable estática "_height" ???....¿ no se volvería a asignar
> el valor "0" ???
>
>
- Sí; puedes definir variables estáticas locales (a una función).
- No; no se redefine la variable, porque es estática. Esto significa que la
variable no es destruida al finalizar la función, ni tampoco se creará más
de la primera vez; o sea, seguirá existiendo, hasta el final del programa,
pero sólo es accesible dentro del ámbito de esta función.
- No hay asignación a 0 (cero), porque se trata de una inicialización, la
cual siempre pertenece a una definición. Como no se redefine, no se
reinicializa.

2 ) Cuando dices que recomiendas que sea global a qué te refieres, ¿ te
> refieres
> a que esta función esté definida fuera de la estructura "Area2D" ???
> ¿ Como un constructor externo ???
>
>
Sí. Como puedes ver, esta función no es miembro de ninguna
estructura/clase. Puedes pensar que es un constructor externo.
Personalmente, me gusta pensar que es una función auxiliar que se dedica a
las "relaciones públicas" y actúa como función "bonita" cara al programador.

PD - Steven, responde si buenamente te apetece y tienes tiempo, que esto es
> por seguir aprendiendo.
>
>
Con gusto :)

PD - Creo que son super interesantes los patrones estos de diseño de
> constructores externos para automatizar la creación de objetos.
>
>
Muchos patrones son interesantes, porque implican soluciones populares y
usadas por muchos programadores. Siempre interesa ver cómo los
programadores solucionan problemas comunes.


Hasta luego,

Steven

P.D.: Feliz Nochebuena y Navidad.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20131224/5e89b9fd/attachment.html>


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