<!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>