Bonjour à tous,

Je fais appel à une fonction qui doit me calculer la nouvelle position d'un mobile en fonction du temps initial et de la vitesse initiale. Pour cela, j'ai crée une classe T et une instance de cette classe T1.
Dans cette classe, j'ai défini la méthode frein qui prend en entrée 2 variable : le temps initial et la vitesse initiale. Cette méthode (ou fonction membre) doit me donnée la nouvelle valeur de l'attribut Position.
Or je constate que la Position reste bloquée à la valeur initiale ....

Voici des extraits de code...

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
class T
{
    public:
    T();
    T(double pos);
    T(double pos, double circul, double accel, double frein);
    double frein(int t1, double v);
 
    //Accesseur
    double const GetPosition();
     double const GetVitesse();
    //Mutateur
    void SetPosition(double pos);
 
    private:
    double Position;
 
};

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
 
#include <iostream>
#include "T.h"
int DeltaT=1;
 
//T::T(){Position=0;}
T::T(double pos): Position(pos){}
T::T(double pos, double circul, double accel, double frein): Position(pos), v_circul(circul), a_accel(accel) , a_frein(frein){}
 
 
 
 
//double const T::GetVitesse(){return Vitesse;}
double const T::GetPosition(){return Position;}
void T::SetPosition(double pos){Position=pos;}
 
double T::circul(){Position=Position+DeltaT*v_circul*1000/3600;}
double T::frein(int tt1, double vv){Position=Position+0,5*(-1)*(2*tt1+1)*1+vv*1000/3600*1;}
main()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
 
     V1=V1-DeltaT*0.001*3600 ;
             std::cout <<T1.frein(t1,V1) << std::endl;