Bonsoir à tous,
je m'arrache les cheveux depuis un moment sur un problème que je ne parviens pas à résoudre. Impossible d'appeler une méthode static. Voici le code:
test.cpp
Personne.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <iostream> #include "Personne.h" int main() { Personne::add() ; std::cout << "Test." ; return 0 ; }
Personne.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 #ifndef PERSONNE_H #define PERSONNE_H #include <vector> class Personne { public: Personne () ; ~Personne() ; static void add() ; static std::vector<Personne> list ; } ; #endif /* PERSONNE_H */
Chacune des 3 lignes sous commentaire du fichier Personne.cpp produisent une erreur à la compilation. A savoir BUILD FAILED (exit value 2, total time: 4s)
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 #include <vector> #include <iostream> #include "Personne.h" using namespace std ; Personne::Personne () { } Personne::~Personne () { } void Personne::add() { Personne a () ; //cout << list.size() ; => ERREUR //list.push_back(a) ; => ERREUR //cout << list.size() ; => ERREUR }
Si quelqu'un pouvait m'expliquer pourquoi il m'enlèverait une gênante épine du pied !
Merci de m'avoir lu.
Partager