close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Changes between Version 8 and Version 9 of TolOop


Ignore:
Timestamp:
Dec 10, 2009, 10:59:43 AM (15 years ago)
Author:
Víctor de Buen Remiro
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TolOop

    v8 v9  
    226226
    227227== Uso de miembros de tipo Code ==
    228 En OOP no se recomienda el uso de mimebros que apunten a funciones asignables como pueden ser los punteros de funciones en C++ o los objetos de tipo Code en TOL.
     228
     229En OOP no se recomienda el uso de miembros que apunten a funciones asignables como pueden ser los punteros de funciones en C++ o los objetos de tipo Code en TOL. Una función asignable pretende recoger comportamientos polimórficos impredecibles y eso en OOP se trata mediante herencia de métodos virtuales.
     230
    229231TOL dará un un mensaje de aviso cuando esto ocurra, aunque se permitirá su uso por si fuera necesario en casos extremos.
     232
    230233En tales casos las funciones así utilizadas no tendrán acceso al ámbito de la clase pues no se trata de verdaderos métodos.
    231 Aún más peligroso resulta usar estos miembros de tipo Code dentro de un !NameBlock genérico, no instancia de clase, puesto que en ellos es imposible distinguir si fue creado como método o como objeto, por lo que tendrá acceso al ámbito del !NameBlock y sólo debería ser asignado a verdaderos métodos del mismo, nunca a objetos externos. Especialmente dañino resultaría que una misma función externa fuera asignada a miembros de tipo Code de diferentes !NameBlock's no globales, o bien que esa función se usara además fuera de ellos, pues ello podría incluso ocasionar una caída de TOL.
    232 
     234
     235Aún más peligroso resulta usar estos miembros de tipo Code dentro de un !NameBlock genérico, no instancia de clase, puesto que en ellos es imposible distinguir si fue creado como método o como objeto, por lo que tendrá acceso al ámbito del !NameBlock y sólo debería ser asignado a verdaderos métodos del mismo, nunca a objetos externos.
     236
     237Especialmente dañino resultaría que una misma función externa fuera asignada a miembros de tipo Code de diferentes !NameBlock's no globales, o bien que esa función se usara además fuera de ellos, pues ello podría incluso ocasionar una caída de TOL.