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
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.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
#ifndef PERSONNE_H
#define	PERSONNE_H
 
#include <vector>
 
class Personne {
 
    public:
 
        Personne () ;
        ~Personne() ;
        static void add() ;     
        static std::vector<Personne> list ;
} ;
 
#endif	/* PERSONNE_H */
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
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
    }
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)

Si quelqu'un pouvait m'expliquer pourquoi il m'enlèverait une gênante épine du pied !
Merci de m'avoir lu.