<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    El 06/11/10 12:09, Segundo Álvarez escribió:<br>
    <blockquote
      cite="mid:AANLkTimkKOfsAefUCLfdtyUHP=PS0ROCAWkz409ZdBCW@mail.gmail.com"
      type="cite">
      <div><font class="Apple-style-span" face="arial, sans-serif"><span
            class="Apple-style-span" style="border-collapse: collapse;">El
            problema es con el uso de this y no es el primero que me da
            problemas. El problema lógicamente tiene solución por otro
            lado pero la pregunta es un reto para los "freaks" ya que no
            hay una expresión tan elegante y corta como </span></font></div>
      <div><font class="Apple-style-span" face="arial, sans-serif"><span
            class="Apple-style-span" style="border-collapse: collapse;"><br>
          </span></font></div>
      <div><font class="Apple-style-span" face="arial, sans-serif"><span
            class="Apple-style-span" style="border-collapse: collapse;">[CENTER][B]
            return sqrt(mult(this));[/B][/CENTER]</span></font></div>
      <div><font class="Apple-style-span" face="arial, sans-serif"><span
            class="Apple-style-span" style="border-collapse: collapse;"><br>
          </span></font></div>
      <div><font class="Apple-style-span" face="arial, sans-serif"><span
            class="Apple-style-span" style="border-collapse: collapse;">y
            me gustaría saber porqué no funciona (probablemente funcione
            sin problema en Java).</span></font></div>
    </blockquote>
    <br>
    No indicas cuál es el problema.<br>
    He probado a hacer una mini implementación, usando std::vector y
    compila sin problemas:<br>
    <br>
    #include <cmath><br>
    #include <vector><br>
    <br>
    using namespace std;<br>
    <br>
    class ap_vector : private std::vector<float> {<br>
       float mult(const ap_vector& data) //multiplica escalarmente
    con el vector devolviendo el resultado y null si<br>
                                    //tienen distinta dimensión<br>
            {<br>
                float result;<br>
                if (data.size() != size())<br>
                {<br>
                    return 0; //devuelve null si no coinciden las
    dimensiones<br>
                } <br>
                else<br>
                {<br>
                    int k;<br>
                   
    for(k=0;k<size();k++){result+=(*this)[k]*data[k];}<br>
                    return result;<br>
                }<br>
            } <br>
            <br>
           float dist(void) //devuelve la distancia euclidea del vector.<br>
            {<br>
    <br>
                return sqrt(mult(*this)); //también intenté con this
    sólo.<br>
            }<br>
    };<br>
    <br>
  </body>
</html>