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 23, 2009, 10:14:08 AM (15 years ago)
- Author:
-
Víctor de Buen Remiro
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v12
|
v13
|
|
8 | 8 | |
9 | 9 | == Miembros y métodos == |
10 | | A los elementos de una estructura se les suele llamar campos, pero en una clase hay que distinguir los métodos de los miembros. Un método es una función de una clase con un prototipo o definición conocida y fija, es decir, que el tipo devuelto y los argumentos, incluidos sus nombres, están prefijados de antemano.Todos los demás elementos de una clase se denominarán miembros. Nótese que un elemento de tipo {{{Code}}} no es un método. |
| 10 | A los elementos de una estructura se les suele llamar campos y se accede a ellos mediante la sintaxis {{{<nombre_conjunto>-><nombre_campo>}}}, pero en una clase hay que distinguir los métodos de los miembros, aunque todos ellos se acceden mediante la misma sintaxis {{{<nombre_instancia>::<nombre_campo>}}}. Un método es una función de una clase con un prototipo o definición conocida y fija, es decir, que el tipo devuelto y los argumentos, incluidos sus nombres, están prefijados de antemano.Todos los demás elementos de una clase se denominarán miembros. Nótese que un elemento de tipo {{{Code}}} no es un método. |
11 | 11 | |
12 | 12 | Tanto unos como otros pueden estar definidos desde un principio o pueden estar solamente declarados a la espera de que se implementen posteriormente. |
… |
… |
|
304 | 304 | Matrix c = sum(vd.ser, vd.mat); |
305 | 305 | }}} |
| 306 | |
| 307 | === Acceso a variables del ámbito global === |
| 308 | |
| 309 | El ámbito global puede verse en cierta manera como una clase cuyos elementos son todos estáticos y puede accederse a ellos con el operador {{{::}}} sin operando izquierdo |
| 310 | {{{ |
| 311 | Real G = 1; |
| 312 | Set aux = |
| 313 | { |
| 314 | Real G = 2; |
| 315 | Real g = ::G |
| 316 | [[g, G]] |
| 317 | }; |
| 318 | Real ok.1 = aux[1]==1; |
| 319 | Real ok.2 = aux[2]==2; |
| 320 | }}} |
| 321 | |
| 322 | De esta manera puede asegurarse que se usa la variable global en lugar de otra local que pueda haber pasado desapercibida, dando lugar a errores difíciles de detctar. |
| 323 | Hay sólo una excepción. Por ejemplo, este otro código da un error porque no es viable aplicar el operador de búsqueda global al tipo Anything, debido a que es posible crear variables de distinto tipo con el mismo nombre, y todas ellas serían aceptables dando lugar a una ambigüedad dificil de resolver sin pérdida de eficiencia. |
| 324 | {{{ |
| 325 | Real G = 1; |
| 326 | Set fail = |
| 327 | { |
| 328 | Real G = 2; |
| 329 | [[ ::G, G]] |
| 330 | }; |
| 331 | }}} |