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 12 and Version 13 of TolOop


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

--

Legend:

Unmodified
Added
Removed
Modified
  • TolOop

    v12 v13  
    88
    99== 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.
     10A 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.
    1111
    1212Tanto unos como otros pueden estar definidos desde un principio o pueden estar solamente declarados a la espera de que se implementen posteriormente.
     
    304304Matrix c = sum(vd.ser, vd.mat);
    305305}}}
     306
     307=== Acceso a variables del ámbito global ===
     308
     309El á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
     322De 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.
     323Hay 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}}}