Bonjour,

Voila je suis debutant en c++ oriente programmation mathematique, et j'essaie d'en savoir un peu plus sur la definition des classes avant de commencer a coder.

Dans un bouquin que je suis actuellement entrain de lire je tombe sur la definition de la calsse Diffusion process "ci-dessous", qui contient des declaration de membres et fonction membres que j'arrive a comprendre mais le debut de la definition de cette classe m'echappe totalement (partie en gras).

D'autant plus que je n'arrive pas a trouver sur le net la signification du mot cle "~" avant DiffusionProcess. Pouvez-vous s'il vous plait m'eclairer sur cette premiere partie. Pouvez vous aussi s'il vous plait m'expliquer quel est l'interet d'introduire const = 0, apres avoir defini les deux membres drift et diffusion.

Merci d'avance de l'aide apportee

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
class DiffusionProcess
{
public:
DiffusionProcess(double x0) : x0_(x0) {}
virtual ∼DiffusionProcess() {}
double x0() const { return x0_; }// returns the drift part of the equation, i.e. mu(t, x_t)
virtual double drift(Time t, double x) const = 0;
// returns the diffusion part of the equation, i.e. sigma(t,x_t)
virtual double diffusion(Time t, double x) const = 0;
// returns the expectation of the process after a time interval
// returns E(x_{t_0 + delta t} | x_{t_0} = x_0) since it is Markov.
// By default, it returns the Euler approximation defined by
// x_0 + mu(t_0, x_0) delta t.
virtual double expectation(Time t0, double x0, Time dt) const {
return x0 + drift(t0, x0)*dt;
}
// returns the variance of the process after a time interval
// returns Var(x_{t_0 + Delta t} | x_{t_0} = x_0).
// By default, it returns the Euler approximation defined by
// sigma(t_0, x_0)^2 \Delta t .
virtual double variance(Time t0, double x0, Time dt) const {
double sigma = diffusion(t0, x0);
return sigma*sigma*dt;
}
private:
double x0_;
};