Bonsoir,
je ne comprend pas pourquoi ce code ne fonctionne pas. En fait, si le code du fichier .h et .cpp sont plac�s dans un fichier .cpp au dessus du main alors tout fonctionne. Je suis sous Code::Blocks8.02 mingw.
Jamais, la valeur de l'�l�ment dont la cl� est "C" ne sera mis � jour.
Par contre, si l'ensemble de ce code est mis dans un seul fichier, alors cela fonctionne.
En vous remerciant pour vos conseils,
Bonne soir�e.
Xavier
fichier EnthalpyData.h
fichier Enthalpy.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 // ==================================================== // Enthalpy Data // Class which manage all the necessary data // ==================================================== #ifndef __ENTHALPYDATA_H__ #define __ENTHALPYDATA_H__ #include <map> class GsmAnalysis1 { public: GsmAnalysis1(); ~GsmAnalysis1(); void setCompoundByName(const char* compound, double valCompound); private: std::map<const char*, double> _analysisMap; }; #endif // __ENTHALPYDATA_H__
fichier test.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
26
27
28
29
30 // ==================================================== // GSMEnthalpy Data // Class which manage all the necessary data // ==================================================== #include "GSMEnthalpyData.h" #include <iostream> using namespace std; GsmAnalysis1::GsmAnalysis1() { _analysisMap["C"] = 4.0; } GsmAnalysis1::~GsmAnalysis1() { } void GsmAnalysis1::setCompoundByName(const char* compound, double valCompound) { std::map<const char*, double>::iterator it; it=_analysisMap.find(compound); if (it == _analysisMap.end()) cout << "It not found" << endl; else { cout << "It: " << it->first << " ==> " << it->second << endl; _analysisMap.erase (compound); _analysisMap[compound] = valCompound; } }
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 #include "GSMEnthalpyData.h" int main() { GsmAnalysis1 analyse = GsmAnalysis1(); analyse.setCompoundByName("C", 2.99); return 0; }
Partager