Utilisation invalide de 'cette' non-membre de la fonction

J'ai eu à travailler sur une classe et a commencé à écrire tout de même .fichier cpp. Cependant, après un certain temps, j'ai pu voir la classe devient de plus en plus donc j'ai décidé de le diviser en un .h et un .fichier cpp.

gaussien.h fichier:

class Gaussian{
    private:
        double mean;
        double standardDeviation;
        double variance;
        double precision;
        double precisionMean;
    public:
        Gaussian(double, double);
        ~Gaussian();
        double normalizationConstant(double);
        Gaussian fromPrecisionMean(double, double);
        Gaussian operator * (Gaussian);
        double absoluteDifference (Gaussian);
};

gaussian.cpp fichier:

#include "gaussian.h"
#include <math.h>
#include "constants.h"
#include <stdlib.h>
#include <iostream>

Gaussian::Gaussian(double mean, double standardDeviation){
    this->mean = mean;
    this->standardDeviation = standardDeviation;
    this->variance = sqrt(standardDeviation);
    this->precision = 1.0/variance;
    this->precisionMean = precision*mean;
} 

//Code for the rest of the functions...

double absoluteDifference (Gaussian aux){
    double absolute = abs(this->precisionMean - aux.precisionMean);
    double square = abs(this->precision - aux.precision);
    if (absolute > square)
        return absolute;
    else
        return square;
}

Cependant, je ne peux pas obtenir ce pour compiler. J'ai essayer de l'exécuter:

g++ -I. -c -w gaussian.cpp

Mais j'obtiens:

gaussian.cpp: In function double absoluteDifference(Gaussian)’:
gaussian.cpp:37:27: error: invalid use of this in non-member function
gaussian.h:7:16: error: double Gaussian::precisionMean is private
gaussian.cpp:37:53: error: within this context
gaussian.cpp:38:25: error: invalid use of this in non-member function
gaussian.h:6:16: error: double Gaussian::precision is private
gaussian.cpp:38:47: error: within this context

Pourquoi ne puis-je l'utiliser?? Je l'utilise dans le fromPrecisionMean fonction et qui compile. Est-ce parce que cette fonction renvoie une Gaussienne? Toute explication supplémentaire sera vraiment apprécié, je suis en train d'apprendre autant que je peux! Merci!

OriginalL'auteur coconut | 2012-01-28