Devolver parametros de cualquier tipo... no enteros o float.

Previous topic - Next topic

mentalthink



Hola compis como va eso,  :good:

Os quería comentar esto, aunque supongo que ya lo sabreís , pero a mi me resulto interesante cuando lo probé... El asunto es que ando aprendiendo C++, y seguramente como sabéis permite devolver cualquier tipo de valor, en el código que he puesto, aunque es un poco flipe, porque dudo mucho que sea nivel de ASM un Constructor y un Destructor, en el Main podeis ver como puedes devolver valores de las funciones miembro... Fuera de una Strctura no funciona, solo se puede con INT, String o lo que sea...

Solo lo quería comentar por mera curiosidad, no es que venga a dar lecciones de conocimientos a nadie, pero me ha parecido curioso que GLbasic a parte de esta tenga tantas similitudes directas con C++, no como AGK que la verdad me recuerda un poco a JAVA, algo dónde está todo metido con cientos y cientos de comandos.

Bueno pues solo eso, y de paso saludar... que no decís ni mu.


Code (glbasic) Select
TYPE tParticle

axis[3] AS int

FUNCTION tParticleConstructor AS tParticle:
DEBUG "Constructor: " + "\n"
ENDFUNCTION

FUNCTION tParticleDestructor  AS tParticle:
DIM self.axis[0]
DEBUG "Memory Free: " + "\n"
DEBUG "LEN        : " + LEN(self.axis) + "\n"
ENDFUNCTION

ENDTYPE
LOCAL myParticle AS tParticle
myParticle.tParticleConstructor()
myParticle.tParticleDestructor()

WHILE TRUE




SHOWSCREEN
WEND

hardyx

Siento responder tarde, no había visto el tema.

Está bien para simular constructores y destructores en GLB, obviamente no son los de C++ porque GLB no tiene esto, para ello habría que crear código inline. Pero no hace falta devolver el propio objeto si no se va a usar el resultado, ya que puedes cambiar el propio objeto, a no ser que quieras usarlas en asignaciones o de otra forma.

P.D. Los constructores y destructores de C++ no tienen tipo, si tuvieran sería void.

Saludos
Code (glbasic) Select

        FUNCTION Constructor:
                DEBUG "Constructor: " + "\n"
        ENDFUNCTION

        FUNCTION Destructor:
                DIM self.axis[0]
                DEBUG "Memory Free: " + "\n"
                DEBUG "LEN        : " + LEN(self.axis) + "\n"
        ENDFUNCTION


mentalthink

Gracias Hardyx, no recordaba que los constructores son void en C++, tiene tantas cosas esté lenguaje que a veces es un follón.
Por lo de responder tarde no te preocupes, me parece que solo quedamos tú y yo de españoles, y no es que yo entré tanto como antes.

Saludotes.