erreur avec un .h.cpp sur un vector
Bonjour
Je voudrais essayer de decouper mon code en fonction dans un même projet.
Le code de base fonctionne à savoir :
Code:
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
| #include <iostream>
#include <vector>
using namespace std;
double moyenneTabDynamique(vector<double>tableau)
{
double moyenne;
for (int i(0);i<tableau.size;i++)
{
moyenne+=tableau[i];
}
moyenne/=tableau.size;
return moyenne;
}
int main()
{
vector<double>tableauNoteUserDynamique;
char userChoice;
do
{
cout<<"Veuillez entrer votre note : "<<endl;
double noteUser(0);
cin>>noteUser;
tableauNoteUserDynamique.push_back(noteUser);
cout<<"Avez vous d'autres note a enregistrer yes(y) no (n)"<<endl;
cin>>userChoice;
}while(userChoice=='y');
moyenneTabDynamique(tableauNoteUserDynamique);
return 0;
} |
ensuite j'ai découper comme suit :
=========main.cpp==========
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <iostream>
#include <vector>
#include "moyenneTabUserDynamique.h"
using namespace std;
int main()
{
vector<double>tableauNoteUserDynamique;
char userChoice;
do
{
cout<<"Veuillez entrer votre note : "<<endl;
double noteUser(0);
cin>>noteUser;
tableauNoteUserDynamique.push_back(noteUser);
cout<<"Avez vous d'autres note a enregistrer yes(y) no (n)"<<endl;
cin>>userChoice;
}while(userChoice=='y');
moyenneTabDynamique(tableauNoteUserDynamique);
return 0;
} |
==========moyenneTabUserDynamique.cpp====================
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| /*fonction de moyenne sur un tableau dynamique
*-tableau : nom du tableau dynamique
*-taille tableau : obtenu par la fonction size
*/
#include "moyenneTabUserDynamique.h"
double moyenneTabDynamique(vector<double>tableau)
{
double moyenne;
for (int i(0);i<tableau.size;i++)
{
moyenne+=tableau[i];
}
moyenne/=tableau.size;
return moyenne;
} |
=============moyenneTabUserDynamique.h===============
Code:
1 2 3 4 5 6
| #ifndef MOYENNETABUSERDYNAMIQUE_H_INCLUDED
#define MOYENNETABUSERDYNAMIQUE_H_INCLUDED
double moyenneTabDynamique(vector<double>tableau);
#endif // MOYENNETABUSERDYNAMIQUE_H_INCLUDED |
Selon mes maigres connaissance cela me semblait correcte mais mon compilateur me hurle un :
||=== Build: Debug in moyenneTabUserDynamique (compiler: GNU GCC Compiler) ===|
D:\c++\madbox\fonction\tableau\moyenneTabUserDynamique\moyenneTabUserDynamique.h|4|error: 'vector' was not declared in this scope|
D:\c++\madbox\fonction\tableau\moyenneTabUserDynamique\moyenneTabUserDynamique.h|4|note: suggested alternative:|
D:\codeblock\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stl_vector.h|214|note: 'std::vector'|
D:\c++\madbox\fonction\tableau\moyenneTabUserDynamique\moyenneTabUserDynamique.h|4|error: expected primary-expression before 'double'|
D:\c++\madbox\fonction\tableau\moyenneTabUserDynamique\main.cpp||In function 'int main()':|
D:\c++\madbox\fonction\tableau\moyenneTabUserDynamique\main.cpp|21|error: 'moyenneTabDynamique' cannot be used as a function|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Il s'emblerait qu'il y est un problème dans la ligne 4 du .h mais je n'arrive pas a trouver la raison
J'ai effectuer la même procédure sur un tableau statique sans problème.
Merci d'éclairer ma lanterne.