Bonsoir,
Sur le même projet qu'ici.
Mais cette fois ce n'est pas au niveau individus/population que j'ai un problème mais sur l'objet simulation qui lui va gérer le cycle de vie au niveau population et la simulation, c'est là qu'il y aura les slots le jour où j'aurais enfin débogué le code.
Je disais donc que ma classe simulation possède une série d'attribut permettant d'initialiser comme il faut un objet population.
Mon problème c'est qu'à l'exécution ça passe directement à l'initialisation de l'objet population avant d'initialiser les paramètre.
Je me demandais si quelqu'un pouvait m'expliquer pourquoi et me proposer une solution.
simulation.h
simulation.cpp
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 #ifndef SIMULATION_H #define SIMULATION_H #include <QSemaphore> #include "population.h" class simulation { public: //constructeur simulation(QSemaphore *s); //méthodes membre void initParam(); private: QSemaphore *s1; double b; double d; double zi; double r; int quantiteInit; lib::Coordonnee dimension; Population pop; }; #endif // SIMULATION_H
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 #include "simulation.h" simulation::simulation(QSemaphore *s) { this->s1=s; qDebug("préparation de la simulation en cour..."); initParam(); qDebug("Création d'un objet population en cour..."); s1->acquire(1); pop=Population(b,d,zi,r,quantiteInit,lib::Coordonnee(50,50)); qDebug("Création d'un objet population finit."); qDebug("préparation de la simulation terminée."); } void simulation::initParam() { qDebug("initialisation des paramètres en cour..."); QFile file("../config"); QFile file2("../test"); QString str=""; if(file.open(QFile::ReadWrite)) { QTextStream out(&file); out>>str; b=str.toDouble(); out>>str; d=str.toDouble(); out>>str; zi=str.toDouble(); out>>str; r=str.toDouble(); out>>str; quantiteInit=str.toInt(); qDebug()<<"quantite initiale lu dans le fichier : "<<quantiteInit; out>>str; dimension.y=str.toInt(); out>>str; dimension.x=str.toInt(); //qDebug()<<""+str; if(file2.open(QFile::ReadWrite)) { QTextStream in(&file2); in <<b<<"\n"<<d<<"\n"<<zi<<"\n"<<r<<"\n"<<quantiteInit<<"\n"<<"("<<dimension.x<<";"<<dimension.y<<")"; } else {qDebug("erreur d'ouverture du fichier \"test\" en lecture/écriture");} } else {qDebug("erreur d'ouverture du fichier \"config\" en lecture/écriture");} s1->release(1); qDebug()<<"initialisation des paramètres finit."<<b<<"/"<<d<<"/"<<zi<<"/"<<r<<"/"<<quantiteInit<<"/"<<"("<<dimension.x<<";"<<dimension.y<<")"; }
Partager