slt les développeurs,
voila j'ai un problème avec une l-value, j'ai le code suivant dans lequel W est une variable membre que j'essaye de modifier dans une méthode membre mais ça se compile pas
error C2166: l-value définit un objet const
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
// classe Solution_EDS
class Processus
{
public:
	double b;
	double sigma;
	double x0;
 
};
class Solution_EDS:public Processus
{
private:
	double h;
	double W;//Brownien
public:
	Solution_EDS(double bi=0.05, double sigmai=0.2, double x0i=1,double hi=0.025):W(0),h(hi)
	{b=bi;sigma=sigmai;x0=x0i;};
	double operator()(double t) const;
};
double Solution_EDS::operator()(double t) const 
{
	Loi_Normale N;
	//Simulation de Brownien
	W=+sqrt(h)*N.simule();
	return (x0*exp((b-sigma*sigma/2)*t+sigma*W));
 
}
Pourtant, j'ai ce code qui fait presque la même chose et compile

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
class A { 
  private: 
    int func_cache; 
  public: 
    A() : func_cache(0) {} 
    void func() { 
      std::cout << ++func_cache << std::endl ; 
    } 
};
Merci d'avance de votre aide