Bonsoir à tous,

J'ai besoin d'une petite aide je viens de débuter mon apprentissage en C++ est c'est pas simple. J'essaye de faire de l'héritage avec es méthodes virtuelles pures. Toujours est-il que je me lance et qu'il y a une erreur que je ne comprends pas.

Main.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
 
#ifndef MAIN_H_
#define MAIN_H_
 
#include <iostream>
#include "Vehicule.h"
#include "Voiture.h"
 
using namespace std;
 
class Main {
};
 
#endif
Main.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
#include "Main.h"
 
int main() {
	cout << "Gestion d'une flotte de vehicules" << endl;
 
	Voiture* v;
	v = new Voiture;
	v->test();
	//v->addPassenger();
 
	return 0;
}
Vehicule.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 VEHICULE_H_
#define VEHICULE_H_
 
#include <iostream>
 
using namespace std;
 
class Vehicule {
	int passager;
 
public:
	virtual void addPassenger() = 0;
};
 
#endif
Voiture.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
17
18
19
 
#ifndef VOITURE_H_
#define VOITURE_H_
 
#include <iostream>
#include "Vehicule.h"
 
using namespace std;
 
class Voiture: public Vehicule {
public:
	Voiture();
	virtual ~Voiture();
 
	void test();
	void addPassenger();
};
 
#endif
Voiture.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 "Voiture.h"
 
Voiture::Voiture() {
	cout << " voiture" << endl;
}
 
Voiture::~Voiture() {
	// TODO Auto-generated destructor stub
}
 
void test() {
	cout << "TEST OK" << endl;
}
/*
void addPassenger() {
	cout << "Ajout de passagers" << endl;
}
*/
En exécutant ce programme j'obtiens ceci :
Building target: TESTCPP
Invoking: GCC C++ Linker
g++ -o "TESTCPP" ./src/Main.o ./src/Voiture.o
./src/Main.o: In function `main':
/home/workspace/TESTCPP/Debug/../src/Main.cpp:17: undefined reference to `Voiture::test()'
./src/Voiture.o: (.rodata._ZTV7Voiture[vtable for Voiture]+0x10): undefined reference to `Voiture::addPassenger()'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [TESTCPP] Erreur 1
J'avoue que je ne comprends pas cette erreur de linkage... Un petit coup de pouce et vos conseils sont les bienvenues.

Merci d'avance