accès au données private d'une classe
Bonjour,
j'ai un problème tout bête, tout d'abord, voici le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
class NodeD2Q9
{
//================================================================
//Class for a node with a 2 dimensions and 9 directions
//name convention:
// f22 f12 f21
// \ | /
// f13 -- f00 -- f11
// / | \
// f23 f14 f24
//================================================================
#ifndef Node2DQ9_h
#define Node2DQ9_h
class NodeD2Q9
{
private:
double density;
public:
//the distribution functions are public, so they can be modified easily
double f00, f11, f12, f13, f14, f21, f22, f23, f24;
//compute and save the density of the node
double Density()
{
density = f00 + f11+f12+f13+f14 + f21+f22+f23+f24;
return density;
}
double print() {return density;}
//Be careful to compute the density before using this function
inline double SpeedX() { return (f11-f13 + f21+f24-f22-f23)/density;}
inline double SpeedY() { return (f12-f14 + f21+f22-f23-f24)/density;}
};
#endif |
Il s'agit d'une petite classe pour gérer un noeud d'une future grille.
Le problème se situe au niveau de la fonction Density(), elle retourne bien la bonne densité, mais density n'est pas modifié durablement. Si bien que lorsque j'appelle ensuite SpeedX(), je n'obtient pas le bon résultat.
D'où cela vient t'il et comment y remédier?
Remarques:
J'utilise ubuntu et je compile avec g++
Une solution que j'ai trouvé est de faire deux fonctions:
Code:
1 2 3 4 5 6 7 8 9
|
void ComputeDensity()
{
density = f00 + f11+f12+f13+f14 + f21+f22+f23+f24;
}
double GetDensity()
{
return density;
} |
j'ai le warning suivant du compilateur
Code:
1 2 3
|
In file included from main.cpp:5:
NodeD2Q9.h:7:1: warning: multi-line comment |
pourtant la ligne 7 est un commentaire: