BASIC

Author Topic: Devolver parametros de cualquier tipo... no enteros o float.  (Read 2445 times)

Offline mentalthink

  • Prof. Inline
  • *****
  • Posts: 3321
  • Integrated Brain
    • View Profile


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
 

Offline hardyx

  • Community Developer
  • Dr. Type
  • ******
  • Posts: 479
    • View Profile
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
« Last Edit: 2017-Sep-05 by hardyx »

Offline mentalthink

  • Prof. Inline
  • *****
  • Posts: 3321
  • Integrated Brain
    • View Profile
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.