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.![]()







Répondre avec citation






... Mais l'origine du problème se trouve bel et bien au niveau de la déclaration de la fonction qui devrait en réalité être une déclaration de variable 


Partager