[C con Clase] Problema con puntero this.

Programante programante en gmail.com
Dom Nov 7 00:28:28 CET 2010


El 06/11/10 12:09, Segundo Álvarez escribió:
> 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 
>
> [CENTER][B] return sqrt(mult(this));[/B][/CENTER]
>
> y me gustaría saber porqué no funciona (probablemente funcione sin
> problema en Java).

No indicas cuál es el problema.
He probado a hacer una mini implementación, usando std::vector y compila
sin problemas:

#include <cmath>
#include <vector>

using namespace std;

class ap_vector : private std::vector<float> {
   float mult(const ap_vector& data) //multiplica escalarmente con el
vector devolviendo el resultado y null si
                                //tienen distinta dimensión
        {
            float result;
            if (data.size() != size())
            {
                return 0; //devuelve null si no coinciden las dimensiones
            }
            else
            {
                int k;
                for(k=0;k<size();k++){result+=(*this)[k]*data[k];}
                return result;
            }
        }
       
       float dist(void) //devuelve la distancia euclidea del vector.
        {

            return sqrt(mult(*this)); //también intenté con this sólo.
        }
};

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101107/27e2b273/attachment.html>


Más información sobre la lista de distribución Cconclase