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.
- Timestamp:
-
Dec 10, 2009, 10:59:43 AM (15 years ago)
- Author:
-
Víctor de Buen Remiro
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v8
|
v9
|
|
226 | 226 | |
227 | 227 | == 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 | |
| 229 | En 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 | |
229 | 231 | TOL dará un un mensaje de aviso cuando esto ocurra, aunque se permitirá su uso por si fuera necesario en casos extremos. |
| 232 | |
230 | 233 | En 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 | |
| 235 | 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. |
| 236 | |
| 237 | 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. |