[C con Clase] Saludos y Consultas soble clases . . .

Guillermo Varona Silupú gvarona en ec-red.com
Mie Ago 25 02:49:25 CEST 2010


  Hola amigos,
Tengo interes en conocer el manejo de clases con Harbour 
(http://www.harbour-project.org).
Supongo que los fundamentos son los mismos que se utilizan en C, 
cambiando la sintaxis entre uno u otro lenguaje, no se que tan diferente 
sea respecto a C, la sintaxis de harbour por ejemplo.
Actualmente se esta desarrollando una GUI para harbour basada en QT 
(http://www.sourceforge.net/projects/hmg), y se esta haciendo con clases.
Por ejemplo tengo las siguientes dudas:

1.- En la declaración de la siguiente clase base:

CLASS APPLICATION
     CLASS VAR oWndMain          INIT    NIL    SHARED
     CLASS VAR s_qApp            INIT    NIL    SHARED
     CLASS VAR s_events          INIT    NIL    SHARED
     CLASS VAR s_slots           INIT    NIL    SHARED
     CLASS VAR nObjectCounter    INIT    0       SHARED
     CLASS VAR oMainMenu         INIT    NIL    SHARED
     CLASS VAR oDefaultPopup     INIT    NIL    SHARED
ENDCLASS

¿Que hace la claúsula CLASS VAR?

2.- Cuando se inicializa un objeto se hace asi:

         With Object oBtn1 := Button():New()
             :Row        := 40
             :Col        := 40
             :Width      := 180
             :Caption    := 'OOP Button!!!'
             :OnClick    := { || Button1Click( oButton1 ) }
         End With

En la definición de la clase Button existe el metodo Create(), pero no 
existe el metodo New(), éste existe en la clase padre de la cual deriva 
la clase Button.
Cuando se crea el objeto oBtn1, se hace con el metodo New(), tal como se 
ve en el ejemplo.
En este contexto:
¿Cuando inicializo el objeto con el metodo New(), automaticamente se 
ejecuta el metodo Create()?
¿En que momento se ejecuta el metodo Create(), antes o después del 
metodo New()?

De antemano muchas gracias por sus respuestas.

Atentamente,

Guillermo VArona Silupú






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